擅长:python、mysql、java
<p>不,不存在按实例属性的事情;与所有描述符一样,属性总是<em>总是</em>在类中查找。请参见<a href="http://docs.python.org/2/howto/descriptor.html" rel="noreferrer">descriptor HOWTO</a>了解具体的工作原理。在</p>
<p>您可以使用<code>__getattr__</code>钩子来实现动态属性,该钩子可以动态检查实例属性:</p>
<pre><code>class Monster(object):
def __init__(self, traits):
self._traits = traits
def __getattr__(self, name):
if name in self._traits:
return self._traits[name]
raise AttributeError(name)
</code></pre>
<p>但这些属性并不是真正的动态的;您可以直接在实例上设置这些属性:</p>
^{pr2}$