在python中定义私有模块函数

问题:

根据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是错误的还是我误会了什么?有没有办法将模块的功能定义为私有?

回答:

在Python中,“隐私”取决于“同意成年人”的协议级别 – 你不能force它(比现实生活中的任何事物更多)单一的领先下划线意味着您不会应该从外部访问“ – 领先的下划线(不带尾注)会更有力地传递信息…但最终,它仍然依赖于社会公约和共识:Python的内省是有力的,你不能世界各地的其他程序员尊重你的愿望。
((Btw,尽管这是一个非常密切的秘密,对于C ++来说也是如此):大多数编译器,#include .h文件之前的一个简单的#define private public行是所有需要的, “隐私”…!-))

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Defining private module functions in python

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

2 + 7 =