擅长:python、mysql、java
<p>虽然Ajax打败了我,但我正在开发一个更漂亮的解决方案:</p>
<pre><code>def examplefunction(startObject, differenceInX):
for _ in range(differenceInX + 1):
startObject = getattr(startObject, (any(item.startswith('attr') for item in dir(startObject))[0])
return startObject
</code></pre>
<p>这应该在任何类之外定义。你知道吗</p>
<p>用法:
^在本例中,{<cd1>}将是<code>X5()</code>的实例,<code>differenceInX</code>将是5-2=3。你知道吗</p>
<p>这个方法的好处是,它可以用于任何类,而不必重复定义它。注意,<code>(any(item.startswith('attr') for item in dir(startObject))[0])</code>依赖于每个类只有一个以<code>'attr'</code>开头的属性(在本例中是<code>attr0/1/2/3/n</code>)。你知道吗</p>