擅长:python、mysql、java
<p>在我看来<a href="https://hg.python.org/cpython/file/8b3c609f3f73/Objects/typeobject.c#l2253" rel="nofollow">a type turns ^{<cd1>} into a tuple as one of it's first orders of action</a>。然后是<a href="https://hg.python.org/cpython/file/8b3c609f3f73/Objects/typeobject.c#l2374" rel="nofollow">stores the tuple on the extended type object</a>。因为在这一切之下,python正在寻找一个<code>tuple</code>,所以没有办法对它进行变异。事实上,我甚至不确定您是否可以<em>访问</em>它,除非您首先向实例传递一个元组</p>
<p>您设置的原始对象仍然作为类型的一个属性保留(也许)只是一种方便的内省</p>
<p>您不能<em>修改<code>__slots__</code>并期望它在某个地方出现(而且真的--从可读性的角度来看,您可能并不真的<em>想这样做,对吧?)</p>
<p>当然,您始终可以使用子类来扩展插槽:</p>
<pre><code>>>> class C(A):
... __slots__ = ['z']
...
>>> c = C()
>>> c.x = 1
>>> c.z = 1
</code></pre>