擅长:python、mysql、java
<p>正如其他人所指出的,“命名混乱”发生了。但那到底是什么?让我们看一个例子。在</p>
<p>创建一个实例:</p>
<pre><code>class A():
var1=10
__var2=20
a=A()
</code></pre>
<p>访问A的第一个变量:</p>
^{pr2}$
<p>访问A的第二个变量:</p>
<pre><code>>>> a.__var2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: A instance has no attribute '__var2'
</code></pre>
<p>请注意错误<code>A instance has no attribute '__var2'</code>。但是,您可以通过以下方式访问:</p>
<pre><code>>>> a._A__var2
20
</code></pre>
<p>因此,简单地说,每当在一个方法或变量前面有两个双倍分数(或更多)时,Python会通过在方法或变量前面添加一个下划线和类名来更改该方法或变量的名称。这是一种技巧,这样程序员就不会因为错误地更改值而把事情搞砸。在</p>