擅长:python、mysql、java
<p>如果函数中有任何变量赋值语句,则该变量位于函数的局部范围内(如果未显式声明<code>nonlocal</code>)</p>
<P>考虑此代码:</P>
<pre><code>def outer(c=0):
def inner(x):
if False: c = 0
return c + x
return inner
func = outer(3)
print(func(2))
</code></pre>
<p>这将给出一个<code>UnboundLocalError</code>,即使赋值<code>c = 0</code>从未执行。但是如果带有赋值的行被完全删除,那么它将运行</p>
<p>在列表示例中,变量<code>c</code>未分配到<code>inner</code>中的任何位置;仅使用项目分配对其进行修改</p>