根据http://www.faqs.org/docs/diveintopython/fileinfo_private.html:
与大多数语言一样,Python具有 私有元素的概念:
- 私有的
但是,如果我定义两个文件:
#a.py
__num=1
以及:
#b.py
import a
print a.__num
当我运行b.py
时,它打印出1
,没有任何例外.DiveIntophon错了,还是我误解了什么?有没有办法将模块的功能定义为私有的?
根据http://www.faqs.org/docs/diveintopython/fileinfo_private.html:
与大多数语言一样,Python具有 私有元素的概念:
- 私有的
但是,如果我定义两个文件:
#a.py
__num=1
以及:
#b.py
import a
print a.__num
当我运行b.py
时,它打印出1
,没有任何例外.DiveIntophon错了,还是我误解了什么?有没有办法将模块的功能定义为私有的?
在Python中,"隐私"取决于"成年人同意"的同意程度--你不可能做到force(就像在现实生活中一样;-).单个前导下划线意味着您不是supposed岁就可以"从外部"访问它--two个前导下划线(不带尾部下划线)更有力地传达了信息……但是,归根结底,这仍然取决于社会惯例和共识:Python的自省足够强大,您不可能让世界上其他每个程序员都尊重您的意愿.
((顺便说一句,虽然这是一个秘密,但对C++来说也是一样:对于大多数编译器,狡猾的程序员在#include
.h
文件之前只需要简单的#define private public
行代码就可以对你的"隐私"进行哈希处理了…!-))