【问题标题】:Global and Local Variables in Python3Python3 中的全局变量和局部变量
【发布时间】:2019-04-04 05:16:42
【问题描述】:

我在使用全局变量时遇到了问题。我正在尝试创建一个变量,更改它,打印它,再次更改它并再次打印它。但是,即使我的变量已经定义为全局变量,我也会收到错误消息。这是为什么呢?

myGlobal = 5

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

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

func1()

UnboundLocalError:赋值前引用了局部变量“myGlobal”

【问题讨论】:

  • 再次阅读错误信息,并查看回溯中用---->指示的行

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2013-10-06
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多