Enthüllung der Rolle von „__all__“ in Python
Die „__all__“-Liste in einer „__init__.py“-Datei spielt eine entscheidende Rolle bei der Steuerung, welche Symbole exportiert werden, wenn dafür „from
Konkret definiert „__all__“ eine Liste von Zeichenfolgen, die die Symbole im Modul darstellen, auf die zugegriffen werden kann, wenn die Platzhaltersyntax „import *“ verwendet wird. Betrachten Sie beispielsweise den folgenden Code in einem Modul namens „foo.py“:
__all__ = ['bar', 'baz'] waz = 5 bar = 10 def baz(): return 'baz'
In diesem Beispiel werden die Symbole „bar“ und „baz“ explizit mit „__all__“ exportiert. Wenn Sie daher das Modul „foo“ mit „from foo import *“ importieren, sind nur diese beiden Symbole verfügbar. Alle anderen Symbole, wie zum Beispiel „waz“, werden ausgeblendet.
from foo import * print(bar) print(baz()) # Attempting to access "waz" will raise an exception. print(waz)
Wenn die Liste „__all__“ auskommentiert ist, wird das Standardimportverhalten wirksam, bei dem alle Symbole, die nicht mit einem Unterstrich beginnen, berücksichtigt werden werden importiert. In diesem Fall wäre die Importanweisung erfolgreich und „waz“ wäre ebenfalls zugänglich.
# Comment out __all__ from foo import * print(bar) print(baz()) print(waz)
Es ist wichtig zu beachten, dass „__all__“ nur die Syntax „from
Das obige ist der detaillierte Inhalt vonWie steuert Pythons „__all__' Modulimporte mit „from import *'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!