Maison >développement back-end >Tutoriel Python >Comment les instructions d'importation ont-elles changé dans Python 3 ?

Comment les instructions d'importation ont-elles changé dans Python 3 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 07:26:10216parcourir

How Have Import Statements Changed in Python 3?

Modifications dans l'instruction d'importation dans Python 3

Dans Python 3, le mécanisme d'importation a subi des révisions importantes, introduisant de nouvelles règles pour les importations relatives et restreindre les importations d'étoiles.

Qu'est-ce qu'un parent Importer ?

Une importation relative est une instruction d'importation qui fait référence à un module ou à un package par rapport à l'emplacement du module actuel dans le système de fichiers. Par exemple, considérons la structure de fichier suivante :

mypkg/
  __init__.py
  module1.py
  module2.py

Dans module2.py, l'instruction de module1 import Foo serait une importation relative, car elle importe la classe Foo du module frère module1.

Importations relatives explicites

Python 3 nécessite des importations relatives explicites, qui spécifient clairement l'emplacement du fichier importé. modules. Le point initial ("".") dans une instruction d'importation indique une importation relative. Par exemple, from .module1 import Foo importe Foo du module relatif module1.

Suppression des importations relatives implicites

Dans Python 2, les importations relatives implicites permettaient aux modules d'être importés sans préciser explicitement leur emplacement. Cependant, ce comportement est obsolète dans Python 3. Par exemple, l'instruction import module1 dans Python 2 importerait implicitement module1.py à partir du répertoire actuel. Cependant, dans Python 3, cette instruction générerait une erreur, nécessitant une importation explicite à l'aide de from . import module1.

Les importations d'étoiles

Les importations d'étoiles (par exemple à partir de x import *) ne sont autorisées que dans le code au niveau du module dans Python 3. Cela signifie que les modules ne peuvent pas utiliser star importe lors de l'importation d'autres modules.

Exemple d'utilisation de Relative Importations

Considérez le code Python 2 suivant :

# module1.py
class MyClass:
    def __init__(self):
        print("Hello from MyClass")
# module2.py
from module1 import MyClass

Dans Python 3, module2.py devrait être réécrit comme :

# module2.py
from .module1 import MyClass

Cette importation relative explicite garantit que MyClass est importée depuis le bon emplacement par rapport au module2.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn