Python3中的全局变量和局部变量

时间:2018-10-31 05:00:49

标签: python-3.x function global-variables python-3.6 local-variables

我在使用全局变量时遇到麻烦。我正在尝试创建一个变量,对其进行更改,打印,再次更改并再次打印。但是,即使我的变量已经定义为Global,也会出现错误。为什么会这样?

myGlobal = 5

def func1():
    global myGlobal
    myGlobal = 42
    func2()

def func2():
    print (myGlobal)
    myGlobal = myGlobal - 10
    print (myGlobal)

func1()

UnboundLocalError:分配前已引用局部变量“ myGlobal”

1 个答案:

答案 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也将其变为全局,对于每个函数,都必须将其设为全局,否则它将作为局部变量工作,但是由于甚至没有将其定义为局部变量,因此它给出了错误。希望它能对您有所帮助。