【发布时间】:2011-04-05 22:18:51
【问题描述】:
我看到很多“松散”私有变量/函数的 Python 代码。他们将用一个下划线(例如_foo)声明函数/变量,然后仅在类/文件中使用它。他们不使用双下划线真的让我很恼火,因为最终,有人会从课堂外称这个“私人”成员。
有没有什么方法可以对单下划线强制保密(不改为双下划线)? 谢谢!
【问题讨论】:
-
__具有特殊意义。它破坏了名称,使调试变得困难,并且可能导致自省的有趣问题。您的“松散”隐私确实是有意义的。这个会违反 Python 基本规则的神秘“人”是谁?当单元测试因为违反规则而失败时,还需要什么?他们违反了 API 并且测试失败了。这还不够吗? -
不,即使是双下划线实际上也不能强制执行
private: docs.python.org/tutorial/classes.html#tut-private -
想象一下,如果您看不到某个对象的某些状态,就尝试调试它。 :-)
标签: python