私は python/Lib ソース コードでこれをよく見かけますが、それが何のためにあるのかわかりません。
これは、モジュールのアクセス可能なメンバーを制限するために使用されるものだと考えました。そのため、__all__
の場合には、 の要素のみが表示されますdir(module)
。
ちょっとした例を試してみたところ、期待通りに動作しないことがわかりました。
それで... Python__all__
モジュール レベル変数は何のためにあるのでしょうか?
ベストアンサー1
これには 2 つの目的があります。
ソースを読めば誰でも公開されているパブリックAPIが何であるかが分かる。防ぐプライベート宣言を詮索するのを阻止しますが、そうしないよう警告する良い手段となります。
を使用する場合
from mod import *
、 にリストされている名前のみが__all__
インポートされます。これはそれほど重要ではないと思います。すべてをインポートするのは本当に悪いアイデア。