期待 __all__
能控制模組的存取
依照社群契約, 私有的東西以_
開頭, 但是最近發現有個同事調私有介面(我寫的模組)
Python是靈活的語言, 不成文的規定是「約定大於配置」
搜尋了 __all__
的資料, 還以為能滿足我的要求, 但是完全不能( 見下文 )
那麼, __all__
好像一點用處都沒有?
base.py
__all__ = ('a', 'b', )
a = 1
b = 2
c = 3 # 不希望别人访问
test.py
import base
print(base.c)
輸出
3
Python 2.7
test.py 檔案改為
結果如下:
在Python中沒有什麼是真正私有的