擅长:python、mysql、java
<p>可以使用递归:</p>
<pre><code>class X5:
def __init__(self):
self.attr0 = X4()
def example_function(self, count = 1):
if count == 4:
return self.attr0
self.attr0 = getattr(self.attr0, f'attr{count}')
return self.example_function(count+1)
print(X5().example_function())
</code></pre>
<p>输出:</p>
<pre><code><__main__.X1 object at 0x1012cc278>
</code></pre>
<p>打印<code>X5().attr0.attr1.attr2.attr3)</code>可获得相同的结果:</p>
<pre><code><__main__.X1 object at 0x1012cc278>
</code></pre>
<p>向每个类中添加<code>__repr__</code>方法可以更容易地可视化:</p>
<pre><code>class X1:
...
def __repr__(self):
return f'<{self.__class__.__name__}>'
print(X5().example_function())
</code></pre>
<p>输出:</p>
<pre><code><X1>
</code></pre>