Auswirkungen von PEP-404 auf Python-Importanweisungen
Der Python Enhancement Proposal (PEP) 404 führte wesentliche Änderungen an Importanweisungen in Python 3 ein , was die Klarheit und Organisation von Modulimporten verbessert.
Was ist ein Relative? Importieren?
Ein relativer Import bezieht sich auf den Import eines Moduls von einem Speicherort relativ zum aktuellen Modul oder Paket. In Python 2 waren implizite relative Importe zulässig, in Python 3 wurde dies jedoch eingeschränkt.
Änderungen an relativen Importen
PEP-404 erzwingt explizite relative Importe. Module müssen nun mit dem führenden importiert werden. (Punkt) oder .. (Doppelpunkt), um den Pfad relativ zum aktuellen Modulverzeichnis anzugeben. Zum Beispiel:
from .mymodule import MyFunction # Import from within the current package from ..otherpackage import OtherClass # Import from one level up in the directory structure
Einschränkungen für Star-Importe
Star-Importe (Importieren aller Submodule und Attribute aus einem Paket) sind jetzt nur noch auf Modulebene-Code zulässig. Zuvor waren Sternimporte in Funktions- und Klassendefinitionen zulässig, dies wurde jedoch verboten, um Namensraumverschmutzung und unerwartetes Verhalten zu verhindern.
Beispiel:
Python 2-Code:
# 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
Python 3-Code:
# 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
Durch Erzwingen Durch explizite Importe und die Einschränkung von Star-Importen zielt Python 3 darauf ab, die Importklarheit zu verbessern, Namespace-Kollisionen zu reduzieren und eine strukturiertere und wartbarere Codebasis zu fördern.
Das obige ist der detaillierte Inhalt vonWie hat PEP 404 die Importanweisungen von Python geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!