Impact du PEP-404 sur les instructions d'importation Python
La proposition d'amélioration Python (PEP) 404 a introduit des changements importants dans les instructions d'importation dans Python 3 , améliorant la clarté et l'organisation des importations de modules.
Qu'est-ce qu'un parent Importer ?
Une importation relative fait référence à l'importation d'un module à partir d'un emplacement relatif au module ou au package actuel. Dans Python 2, les importations relatives implicites étaient autorisées, mais cela a été restreint dans Python 3.
Modifications apportées aux importations relatives
PEP-404 applique les importations relatives explicites. Les modules doivent maintenant être importés en utilisant le début . (point) ou .. (double point) pour spécifier le chemin relatif au répertoire du module actuel. Par exemple :
from .mymodule import MyFunction # Import from within the current package from ..otherpackage import OtherClass # Import from one level up in the directory structure
Restrictions sur les importations d'étoiles
Les importations d'étoiles (importation de tous les sous-modules et attributs d'un package) ne sont désormais autorisées qu'au niveau du code du module. Auparavant, les importations d'étoiles étaient autorisées dans les définitions de fonctions et de classes, mais cela a été interdit pour éviter la pollution de l'espace de noms et tout comportement inattendu.
Exemple :
Code Python 2 :
# Function-level star import def my_function(): from mymodule import * do_something_with(MyAttribute) # Class-level star import class MyClass: def __init__(self): from otherpackage import * self.other_variable = OtherVariable
Code Python 3 :
# Module-level star import import mymodule do_something_with(mymodule.MyAttribute) # Explicit import within function def my_function(): from mymodule import MyAttribute do_something_with(MyAttribute) # Explicit import within class class MyClass: def __init__(self): from otherpackage import OtherVariable self.other_variable = OtherVariable
En appliquant les importations explicites et En restreignant les importations d'étoiles, Python 3 vise à améliorer la clarté des importations, à réduire les collisions d'espaces de noms et à promouvoir une base de code plus structurée et plus maintenable.
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!