现在需要开发一个插件系统。 插件系统所有人都可以编写PY文件即可加载。但是需要引入主程序的库 比如
# test.py
from lib.function import *
...
如何防止用户访问lib里面的其他方法或者变量呢?
all 如果加上名称,我主程序需要调用所有*的话,可以吗?
现在需要开发一个插件系统。 插件系统所有人都可以编写PY文件即可加载。但是需要引入主程序的库 比如
# test.py
from lib.function import *
...
如何防止用户访问lib里面的其他方法或者变量呢?
all 如果加上名称,我主程序需要调用所有*的话,可以吗?
4 回答4.4k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
在
python
并没有真正的私有变量或者方法, 所以基本上是无法阻止别人访问另一个模块的方法或者变量, 但是如果用户是通过from lib.function import *
, 那么我们可以通过__all__
属性去设置*
能被import指定的变量或方法, 例如:可以看到在
b2.py
的输出, 并没有bar
和baz
, 所以我们可以通过这种方式, 来做一个简单的控制, 当然下划线开头的私有变量也限制了, 但这种限制对 import abc这种引入方式无效