Maison >développement back-end >Tutoriel Python >Comment les instructions d'importation ont-elles changé dans 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!