根据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行代码就可以对你的"隐私"进行哈希处理了…!-))

Python相关问答推荐

Altair -箱形图边界设置为黑色,中线设置为红色

如何销毁框架并使其在tkinter中看起来像以前的样子?

通过交换 node 对链接列表进行 Select 排序

Python plt.text中重叠,包adjust_text不起作用,如何修复?

有条件地采样我的大型DF的最有效方法

TARete错误:类型对象任务没有属性模型'

Polars LazyFrame在收集后未返回指定的模式顺序

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

在Google Colab中设置Llama-2出现问题-加载判断点碎片时Cell-run失败

无法通过python-jira访问jira工作日志(log)中的 comments

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

dask无groupby(ddf. agg([min,max])?''''

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送

在代码执行后关闭ChromeDriver窗口

Flask运行时无法在Python中打印到控制台

如何在Gekko中使用分层条件约束

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

如何在Airflow执行日期中保留日期并将时间转换为00:00