Python における "__all__" の役割を明らかにする
"__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」モジュールをインポートすると、これら 2 つのシンボルのみが使用可能になります。 「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 中国語 Web サイトの他の関連記事を参照してください。