为什么此代码在赋值'错误之前引用'UnboundLocalError:局部变量'num1'?
{{1}}
答案 0 :(得分:1)
另一个问题! python。这是因为提升和变量阴影。如果在特定范围内具有同名的本地和全局变量,则局部变量将影响全局变量。此外,声明被提升到其范围的顶部。
所以你的原始代码看起来像这样:
num1=50
def func():
num1 = ... # no value assigned
print(num1)
num1=100
func()
现在,如果您尝试打印num1
而没有为其分配任何值,则会抛出UnboundLocalError
,因为您当时没有绑定任何值到该变量你试图取消引用它。
要解决此问题,您需要添加global
关键字,以表示num1
是全局变量,而不是本地变量。
num1=50
def func():
global num1
print(num1)
num1=100
func()