小编典典

在 python 中定义私有模块函数

all

根据http://www.faqs.org/docs/diveintopython/fileinfo_private.html

像大多数语言一样,Python 有私有元素的概念:

  • 私有函数,不能 从其模块外部调用

但是,如果我定义两个文件:

#a.py
__num=1

和:

#b.py
import a
print a.__num

当我运行b.py它时,它会打印出来,1没有任何异常。是diveintopython错了,还是我误解了什么?有没有办法将 模块
的功能定义为私有的?


阅读 83

收藏
2022-04-24

共1个答案

小编典典

在 Python 中,“隐私”取决于“同意成年人”的协议水平——你不能 强迫 它(就像你在现实生活中一样;-)。一个前导下划线意味着您不 应该
“从外部”访问它—— 两个 前导下划线(没有尾随下划线)更有力地传达了信息……但最终,它仍然取决于社交约定和共识:Python
的自省功能足够强大,以至于你不能为了尊重你的意愿而给世界上所有其他程序员 戴上手铐。

((顺便说一句,虽然这是一个保密的秘密,但对于 C++ 来说也是如此:对于大多数编译器,在ing 你的文件#define private public之前只需一行简单的代码就可以让狡猾的编码人员对你的“隐私”进行散列......!-) )#include``.h

2022-04-24