モジュールがあるとしますtest.py:
def foo():
print "foo"
def bar():
print "bar"
def _baz():
print "_baz"
__all__ = ['foo']
とmain.py:
from test import foo, bar, _baz
foo()
bar() # breaks module privacy
_baz() # breaks module privacy
によって示唆されたプライバシー ( bar、 )を破るインポートをキャッチする、Python 用の (静的) コード アナライザー ツールはありますか?_baz__all__
Pylint をテストしましたが、どちらもキャッチしません。
__all__別の明確化:動的に変更/塗りつぶされる状況や、コードのインポートが動的である状況について話しているのではありません。静的に分析可能なコードの状況。