擅长:python、mysql、java
<p>答案是肯定的,方法每次被调用时都会重新执行</p>
<p>您可以通过在<code>oneMethod()</code>中添加对<code>print()</code>的调用来验证这一点,以查看是否每次调用它时都执行它的代码。你会发现是的</p>
<p>通过将返回值绑定到某些变量,可以避免重新执行,例如</p>
<pre><code>a, b = newObject.oneMethod() # will call and execute the code in oneMethod()
secondObject = ClassTwo()
secondObject.twoMethod(a, b)
</code></pre>
<p>这里元组<code>(2, 10)</code>将从<code>oneMethod()</code>返回,并将其解压到变量<code>a</code>和<code>b</code>中,这样<code>a = 2</code>和<code>b = 10</code>。也可以使用单个元组变量,然后通过索引访问各个元素:</p>
<pre><code>t = newObject.oneMethod()
secondObject.twoMethod(t[0], t[1])
# secondObject.twoMethod(*t) # also works, see below...
</code></pre>
<p>另一种不必先保存返回值的方法是使用<code>*</code>运算符的元组解包将<code>oneMethod()</code>的返回值直接传递到<code>twoMethod()</code>:</p>
<pre><code>secondObject = ClassTwo()
secondObject.twoMethod(*newObject.oneMethod())
</code></pre>