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 也是全局的,对于每个函数,它都需要设为全局,否则它将作为局部变量工作,但由于它甚至没有定义为局部变量,所以它给出了错误。希望对你有帮助。