国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

黑客 - Python模塊安全權(quán)限

瀏覽:138日期:2022-06-29 09:36:48

問(wèn)題描述

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

# test.pyfrom lib.function import *...

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

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

問(wèn)題解答

回答1:

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

cat abc.py__all__ = [’bar’]waz = 5bar = 10def baz(): return ’baz’cat b2.pyfrom abc import *print(dir())# 輸出:[’__builtins__’, ’__doc__’, ’__file__’, ’__name__’, ’__package__’, ’bar’]

可以看到在b2.py的輸出, 并沒(méi)有bar和baz, 所以我們可以通過(guò)這種方式, 來(lái)做一個(gè)簡(jiǎn)單的控制, 當(dāng)然下劃線開頭的私有變量也限制了, 但這種限制對(duì) import abc這種引入方式無(wú)效

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 淮滨县| 特克斯县| 宿州市| 临桂县| 宜都市| 铁岭市| 合水县| 炉霍县| 如皋市| 成都市| 泽普县| 盐池县| 乌恰县| 曲松县| 襄城县| 涞水县| 常宁市| 新巴尔虎左旗| 瓦房店市| 揭西县| 鸡西市| 奉新县| 南投县| 永定县| 博罗县| 汝城县| 博爱县| 黎川县| 海林市| 普陀区| 凯里市| 潮安县| 五华县| 如东县| 丹巴县| 同江市| 武宁县| 历史| 东山县| 吐鲁番市| 惠安县|