我在使用全局变量时遇到麻烦。我正在尝试创建一个变量,对其进行更改,打印,再次更改并再次打印。但是,即使我的变量已经定义为Global,也会出现错误。为什么会这样?
myGlobal = 5
def func1():
global myGlobal
myGlobal = 42
func2()
def func2():
print (myGlobal)
myGlobal = myGlobal - 10
print (myGlobal)
func1()
UnboundLocalError:分配前已引用局部变量“ myGlobal”
答案 0 :(得分:1)
这是您的固定代码:
myGlobal = 5
def func1():
global myGlobal
myGlobal = 42
func2()
def func2():
global myGlobal
print (myGlobal)
myGlobal = myGlobal - 10
print (myGlobal)
func1()
您做错了什么是使myGlobal成为func1的全局变量,而不是func2的全局变量。如果要使用它,也应该使它成为全局变量。并不是这样,如果您在func1中将其设为全局,那么对于func2也将其变为全局,对于每个函数,都必须将其设为全局,否则它将作为局部变量工作,但是由于甚至没有将其定义为局部变量,因此它给出了错误。希望它能对您有所帮助。