揭示「__all__」在Python中的作用
「__init__.py」檔案中的「__all__」列表起著關鍵作用使用“from
具體來說,「__all__」定義了一個字串列表,這些字串表示模組中使用「import *」通配符語法時可存取的符號。例如,考慮名為「foo.py」的模組中的以下程式碼:
__all__ = ['bar', 'baz'] waz = 5 bar = 10 def baz(): return 'baz'
在此範例中,符號「bar」和「baz」是使用「__all__」明確匯出的。因此,當您使用“from foo import *”導入“foo”模組時,只有這兩個符號可用。所有其他符號,例如“waz”,都將被隱藏。
from foo import * print(bar) print(baz()) # Attempting to access "waz" will raise an exception. print(waz)
如果註解掉「__all__」列表,則預設導入行為生效,其中所有不以下劃線開頭的符號是進口的。在這種情況下,導入語句將會成功,並且「waz」也將可以存取。
# Comment out __all__ from foo import * print(bar) print(baz()) print(waz)
需要注意的是,「__all__」只影響「from
以上是Python的`__all__`如何透過`from import *`控制模組導入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!