Python-首次使用后重新分配局部变量时出现unbundLocalERROR
发布于 2021-02-02 23:24:33
以下代码可在Python 2.5和3.0中正常运行:
a, b, c = (1, 2, 3)
print(a, b, c)
def test():
print(a)
print(b)
print(c) # (A)
#c+=1 # (B)
test()
但是,当我取消对行(B)的注释时,会得到一个unbundlocalerror:"c"
未在行(A)处分配。a和b的值打印正确。这让我完全困惑,原因有二:
- 为什么由于行(B)的后面的语句而在行(A)抛出运行时错误?
- 为什么在按预期方式打印变量a并引发错误?bc
我能想到的唯一解释是,局部变量c是由赋值c+=1
创建的,它甚至在创建局部变量之前就已经取代了“全局”变量c。当然,一个变量在它存在之前“偷走”范围是没有意义的。
关注者
0
被浏览
307
1 个回答