Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变量。
a = 5
def sql():
# global a
a = a*a
print(a)
sql()
print(a)
我们在全局命名空间里定义一个变量a。我们再在函数内给变量a赋值,然后Python会假定a是一个局部变量。然而,我们并没有在访问前声明一个局部变量a,结果就是会出现一个UnboundLocalError的错误。取消global语句的注释就能解决这个问题。
Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变量。
a = 5
def sql():
# global a
a = a*a
print(a)
sql()
print(a)
我们在全局命名空间里定义一个变量a。我们再在函数内给变量a赋值,然后Python会假定a是一个局部变量。然而,我们并没有在访问前声明一个局部变量a,结果就是会出现一个UnboundLocalError的错误。取消global语句的注释就能解决这个问题。