<p>你不能,<code>__private</code>-样式属性的全部意义在于它们是私有的。基类、子类、外部对象,没有人可以看到或修改它们。如果一个基类或子类尝试,它们最终会在实例上创建自己的<em>自己的</em>私有属性,完全独立于您的属性。在</p>
<p>如果您不想这样做,就不要使用<code>__private</code>-style属性。在</p>
<p>那么,你应该怎么做?在</p>
<p>好吧,最具python风格的是只使用public属性,并完全废弃getter和setter:<code>exampleA.color = 'red'</code>。在</p>
<p>如果你有一个很好的理由需要隐藏这些属性,也许你想让它们<code>_private</code>而不是{<cd1>},这意味着它们只是按照约定是私有的,所以你的代码就可以正常工作了。但我再次怀疑你真的需要把它们藏起来。在</p>
<p>如果你真的,真的需要<code>__private</code>成员,但仍然需要破坏<code>__private</code>成员的全部目的……那么,在这种情况下,我撒谎了;实际上,<em>可以通过手动修改名称来访问它们。例如,在类<code>A</code>内部名为<code>__color</code>的属性从类<code>A</code>外部命名为<code>_A__color</code>。在</p>
<p>如果您想知道Python为什么允许您违反<code>__private</code>保护。。。好吧,与Java中类似的特性不同,这并不是为了保护您免受他人恶意代码的攻击。它保护您的是这样一个场景:编写一个带有属性<code>__x</code>的类<code>A</code>。我编写了一个带有属性<code>__x</code>的类<code>B</code>。其他人通过继承这两个类来组成我们的类,而不告诉你或我。我的代码仍然有效,你的代码也一样。在</p>
<p>有关更多信息,请参阅关于<a href="https://docs.python.org/3/tutorial/classes.html#private-variables" rel="nofollow">private variables</a>的教程部分和关于<a href="https://docs.python.org/3.4/reference/expressions.html?#atom-identifiers" rel="nofollow">identifiers</a>的参考文档。在</p>