擅长:python、mysql、java
<p>在<code>inner</code>函数中返回的变量<code>i</code>保持其值来自上次分配的上下文。在</p>
<p>如果使用<code>inner</code>函数内的断点调试代码,则在调用函数之前选择上一帧/上下文(图中左下角)时,图片将变得更清晰。在</p>
<p>当您使用<code>i</code>时,它被分配到第二个<code>for</code>内,因此它将有一个函数作为其值(在图<a href="https://i.stack.imgur.com/Q4Kmd.png" rel="nofollow noreferrer">1</a>中以黄色突出显示)。在</p>
<p><a href="https://i.stack.imgur.com/Q4Kmd.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Q4Kmd.png" alt="Figure 1"/></a></p>
<p>现在,如果使用<code>j</code>,变量<code>i</code>将保留上一个上下文中的最后一个值:列表上方的<code>for</code>(图<a href="https://i.stack.imgur.com/vtnwR.png" rel="nofollow noreferrer">2</a>)。在</p>
<p><a href="https://i.stack.imgur.com/vtnwR.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/vtnwR.png" alt="Figure 2"/></a></p>