国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

黑客 - Python模塊安全權(quán)限
伊謝爾倫
伊謝爾倫 2017-06-12 09:25:57
0
1
805

現(xiàn)在需要開發(fā)一個插件系統(tǒng)。 插件系統(tǒng)所有人都可以編寫PY文件即可加載。但是需要引入主程序的庫 比如

# test.py
from lib.function import *
...

如何防止用戶訪問lib里面的其他方法或者變量呢?

all 如果加上名稱,我主程序需要調(diào)用所有*的話,可以嗎?

伊謝爾倫
伊謝爾倫

小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。

全部回復(fù)(1)
學(xué)霸

python并沒有真正的私有變量或者方法, 所以基本上是無法阻止別人訪問另一個模塊的方法或者變量, 但是如果用戶是通過from lib.function import *, 那么我們可以通過__all__屬性去設(shè)置*能被import指定的變量或方法, 例如:

cat abc.py
__all__ = ['bar']
waz = 5
bar = 10
def baz(): return 'baz'

cat b2.py
from abc import *
print(dir())

# 輸出:
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bar']

可以看到在b2.py的輸出, 并沒有barbaz, 所以我們可以通過這種方式, 來做一個簡單的控制, 當(dāng)然下劃線開頭的私有變量也限制了, 但這種限制對 import abc這種引入方式無效

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板