擅长:python、mysql、java
<p>return语句将程序的执行返回到调用返回函数的行。在</p>
<p>如果您不熟悉什么是调用堆栈,请将其视为一个函数堆栈—每当调用某个函数时,它都被放在堆栈的顶部,这就是正在运行的内容。当它返回时,它将从堆栈中移除,因此调用它的函数(堆栈中的下面一个)现在位于顶部,因此执行再次开始。在</p>
<p>这个特定的函数将在n==0时返回(这是您的基本情况),因此一旦它的递归调用<code>draw(t, length, n-1)</code>-以及随后的递归调用,因为它在到达该点之前不会完成执行,所以它将移到下一行。在</p>
<p>用一个更简单的函数<code>foo(sum, n)</code>代替:</p>
<pre><code>def foo(sum, n):
if (n == 0):
return sum
sum += foo(sum, n-1)
sum /= 2
return foo(sum, n-1)
</code></pre>
<p>无论何时调用它,它都不会从<code>sum += foo(sum, n-1)</code>移动,直到该调用和所有递归调用返回为止。这个函数在结构上与您展示的功能相当,它可能会帮助您更好地了解正在发生的事情。在</p>