Python3 中的全局变量和局部变量
Global and Local Variables in Python3
我在使用全局变量时遇到问题。我正在尝试创建一个变量,更改它,打印它,再次更改它并再次打印它。但是,即使我的变量已经定义为 Global,我也会收到错误消息。这是为什么?
myGlobal = 5
def func1():
global myGlobal
myGlobal = 42
func2()
def func2():
print (myGlobal)
myGlobal = myGlobal - 10
print (myGlobal)
func1()
UnboundLocalError: 赋值前引用了局部变量'myGlobal'
这是您的固定代码:
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 也是全局的,对于每个函数,它都需要设为全局,否则它将作为局部变量工作,但由于它甚至没有定义为局部变量,所以它给出了错误。希望对你有帮助。
我在使用全局变量时遇到问题。我正在尝试创建一个变量,更改它,打印它,再次更改它并再次打印它。但是,即使我的变量已经定义为 Global,我也会收到错误消息。这是为什么?
myGlobal = 5
def func1():
global myGlobal
myGlobal = 42
func2()
def func2():
print (myGlobal)
myGlobal = myGlobal - 10
print (myGlobal)
func1()
UnboundLocalError: 赋值前引用了局部变量'myGlobal'
这是您的固定代码:
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 也是全局的,对于每个函数,它都需要设为全局,否则它将作为局部变量工作,但由于它甚至没有定义为局部变量,所以它给出了错误。希望对你有帮助。