擅长:python、mysql、java
<p>每次读取Python对象的某些属性时,都会调用方法<code>__getattribute__</code>,这样就可以重载它并完全控制对对象属性的访问。不过,对于您的任务,可以使用一个稍微不同的函数<code>__getattr__</code>。与<code>__getattribute__</code>相反,如果对属性的正常查找失败,即在JavaScript中的原型查找开始时,它才被称为<em>。用法如下:</p>
<pre><code>...
def __getattr__(self, name):
if hasattr(prototype, name)
return getattr(prototype, name)
else:
raise AttributeError
</code></pre>
<p>还要注意<a href="https://stackoverflow.com/questions/2405590/how-do-i-override-getattr-in-python-without-breaking-the-default-behavior">this</a>问题,因为它对新旧样式的对象有一些注释。在</p>