Heim >Backend-Entwicklung >Python-Tutorial >Wie haben sich Importanweisungen in Python 3 geändert?
Änderungen in der Importanweisung in Python 3
In Python 3 wurde der Importmechanismus erheblich überarbeitet und neue Regeln für relative Importe eingeführt Beschränkung von Star-Importen.
Was ist ein Verwandter? Importieren?
Ein relativer Import ist eine Importanweisung, die sich auf ein Modul oder Paket relativ zum Speicherort des aktuellen Moduls im Dateisystem bezieht. Betrachten Sie beispielsweise die folgende Dateistruktur:
mypkg/ __init__.py module1.py module2.py
In module2.py wäre die Anweisung von module1 import Foo ein relativer Import, da sie die Foo-Klasse aus dem Geschwistermodul module1 importiert.
Explizite relative Importe
Python 3 erfordert explizite relative Importe, die klar spezifizieren Speicherort des importierten Moduls. Der führende Punkt („") in einer Importanweisung weist auf einen relativen Import hin. Beispielsweise importiert import Foo aus .module1 Foo aus dem relativen Modul module1.
Entfernung impliziter relativer Importe
In Python 2 waren implizite relative Importe für Module zulässig importiert werden, ohne ihren Speicherort explizit anzugeben. Dieses Verhalten ist jedoch in Python 3 veraltet. Beispielsweise würde die Anweisung import module1 in Python 2 implizit module1.py aus dem aktuellen Verzeichnis importieren. In Python 3 würde diese Anweisung jedoch einen Fehler auslösen und einen expliziten Import mit from erfordern. import module1.
Star-Importe
Star-Importe (z. B. from x import *) sind in Python 3 nur im Code auf Modulebene zulässig. Dies bedeutet, dass Module nicht verwendet werden können Sternimporte beim Importieren anderer Module.
Beispiel für die Verwendung von Relative Importe
Bedenken Sie den folgenden Python 2-Code:
# module1.py class MyClass: def __init__(self): print("Hello from MyClass")
# module2.py from module1 import MyClass
In Python 3 müsste module2.py wie folgt umgeschrieben werden:
# module2.py from .module1 import MyClass
Dieser explizite relative Import stellt sicher, dass MyClass vom richtigen Speicherort relativ zu Modul2 importiert wird.
Das obige ist der detaillierte Inhalt vonWie haben sich Importanweisungen in Python 3 geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!