根据http://www.faqs.org/docs/diveintopython/fileinfo_private.html:
像大多数语言一样,Python 有私有元素的概念: 私有函数,不能 从其模块外部调用
像大多数语言一样,Python 有私有元素的概念:
但是,如果我定义两个文件:
#a.py __num=1
和:
#b.py import a print a.__num
当我运行b.py它时,它会打印出来,1没有任何异常。是diveintopython错了,还是我误解了什么?有没有办法将 模块 的功能定义为私有的?
b.py
1
在 Python 中,“隐私”取决于“同意成年人”的协议水平——你不能 强迫 它(就像你在现实生活中一样;-)。一个前导下划线意味着您不 应该 “从外部”访问它—— 两个 前导下划线(没有尾随下划线)更有力地传达了信息……但最终,它仍然取决于社交约定和共识:Python 的自省功能足够强大,以至于你不能为了尊重你的意愿而给世界上所有其他程序员 戴上手铐。
((顺便说一句,虽然这是一个保密的秘密,但对于 C++ 来说也是如此:对于大多数编译器,在ing 你的文件#define private public之前只需一行简单的代码就可以让狡猾的编码人员对你的“隐私”进行散列......!-) )#include``.h
#define private public
#include``.h