在Python中,变量有两种类型:全局变量和局部变量。全局变量是在函数外定义的变量,它们可以在函数内和外部被访问和修改。局部变量是在函数内定义的变量,它们只能在函数内部被访问和修改。当你在函数内部使用一个变量时,Python会首先在函数内部查找该变量,如果找不到,它会在全局作用域中查找。如果在全局作用域中也找不到该变量,Python会抛出一个UnboundLocalError异常。
为了解决这个问题,你可以使用global关键字来声明一个变量是全局变量。这样,Python就会知道你在函数内部使用的是全局变量,而不是一个新的局部变量。
例如,下面的代码会抛出UnboundLocalError异常:
x = 10
def foo():
x += 1
foo()
但是,如果你在函数内部使用global关键字来声明x是全局变量,就不会抛出异常:
x = 10
def foo():
global x
x += 1
foo()
总之,Python中的全局变量和局部变量是有区别的,你需要注意在函数内部使用全局变量时需要声明global关键字。
领取专属 10元无门槛券
手把手带您无忧上云