久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

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

問(wèn)題描述

現(xiàn)在需要開(kāi)發(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)然下劃線開(kāi)頭的私有變量也限制了, 但這種限制對(duì) import abc這種引入方式無(wú)效

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 沾益县| 芦溪县| 柞水县| 凤山市| 新民市| 商洛市| 万州区| 仪陇县| 项城市| 华容县| 克东县| 岗巴县| 揭西县| 正定县| 浠水县| 布尔津县| 五华县| 清原| 蒙阴县| 浪卡子县| 东平县| 南岸区| 肥乡县| 菏泽市| 寻乌县| 丹江口市| 拉孜县| 安多县| 大厂| 宁明县| 金川县| 资兴市| 历史| 垣曲县| 永清县| 合水县| 云梦县| 梨树县| 大关县| 东明县| 布尔津县|