擅长:python、mysql、java
<p>我会使用单下划线而不是双下划线,直接查看单元测试中的<code>_mask</code>。你知道吗</p>
<p>Python实际上没有私有属性或方法,甚至双下划线属性也可以在您的实例上访问,例如:<code>obj._BitMask__mask</code>。
如果希望子类不覆盖超类的属性,则使用双下划线。要表示“private”,应该使用单下划线。你知道吗</p>
<p>允许访问私有字段是python设计的一部分,因此使用这种能力<a href="http://docs.python-guide.org/en/latest/writing/style/#we-are-all-responsible-users" rel="nofollow noreferrer">responsibly</a>并不被认为是错误的,如果您正在访问自己的<em>类,则更是如此。你知道吗</p>
<p>“不要接触私有字段”背后的基本原理是,作为开发人员,您可能会弄乱类的内部结构,而且s库的私有接口也可能随时更改并破坏代码。
当您编写单元测试时,您不怕弄乱自己的类,并且接受如果更改类就必须更改单元测试,因此这种编程习惯用法对您的应用是没有用的。你知道吗</p>