擅长:python、mysql、java
<p>代码没有上下文来说明<code>self.instance</code>可能是什么。至于<code>self.__name</code>,<code>property</code>定义清楚地表明,它是在懒洋洋地为实例分配顺序名称。它将<code>__name</code>设置为<code>None</code>,这样就知道它尚未初始化;当<code>self.name</code>被访问时,它将识别占位符,用新值替换它,并返回新值。你知道吗</p>
<p>请注意,在Python中为<code>__init__</code>中的所有实例属性提供一些赋值被认为是良好的形式,因为否则很难确定实例可能具有哪些属性。在现代Python(3.3及更高版本)中,这样做可以节省内存;只要所有属性都在<code>__init__</code>中初始化,并且在<code>__init__</code>之后没有添加新的属性,那么所有实例的<code>__dict__</code>都是<a href="https://docs.python.org/3/whatsnew/3.3.html#pep-412-key-sharing-dictionary" rel="nofollow">key-sharing dictionary</a>,这可以显著降低每个实例的成本(大约减少三分之二,尽管这是实现细节)。因此,如果其他方法/属性稍后会设置<code>instance</code>,那么最好将其初始化为<code>__init__</code>中的某个内容,以便维护人员知道它应该具有什么,并减少Py3.3+中的内存消耗。你知道吗</p>