擅长:python、mysql、java
<p>所以要回答问题的第一部分:如何在属性尚未定义的情况下,<code>__getattr__</code>调用{<cd2>}。python类中有两种属性访问方法:<code>__getattribute__</code>和{<cd1>}。第一个在每次尝试属性查找时调用,第二个仅在常规属性查找系统失败(包括超类中的查找)时调用。因为您定义的是<code>__getattr__</code>,它只在属性不存在时调用,所以您可以简单地将其代理为对<code>.get</code>的调用。如果您试图查找<code>self</code>的另一个属性,<code>self</code>的另一个属性,<code>__getattr__</code>内部也不存在该属性。避免这种情况的方法是有一个需要特殊处理的键列表,并检查当前请求的属性是否是其中之一。这通常只在实现<code>__getattribute__</code>时需要。在</p>
<p>请注意,<code>.get</code>方法有一个问题:<code>attr</code>和{<cd12>}未定义。如果我知道<code>.get</code>的<code>attr</code>和{<cd12>}需要什么值,我会给出一个更具体的答案。在</p>