モジュールがあるとします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__
別の明確化:動的に変更/塗りつぶされる状況や、コードのインポートが動的である状況について話しているのではありません。静的に分析可能なコードの状況。