擅长:python、mysql、java
<pre><code>a1.classvar = 'aaa'
</code></pre>
<p>这是对类变量的“引用”。在</p>
<p>这是对象“a1”中的新实例变量。在</p>
<p>像<code>A.classvar</code>这样的表达式是类变量。类对象(及其超类)都有一个类级字典(<code>A.__dict__</code>),其中定义了类级对象。名称解析的工作方式是检查类,然后按方法解析顺序(MRO)检查所有超级类。在</p>
<p>像<code>a.classvar</code>这样的表达式是通过搜索对象的命名空间来解析的。当这是一个“reading”引用时,将搜索对象和类(以及超类)。在</p>
<p>当它出现在赋值的左边时,实例变量(“classvar”)只是在被引用对象(“a”)上创建的。没有搜索父名称空间来解析名称,因为没有要解析的内容。它正在被创造。在</p>