有没有一种方法可以在本地函数的特定位置使用全局变量?

时间:2019-02-05 06:55:29

标签: python-3.7

要理解我的问题,下面是使用全局关键字的示例代码-

def span():
    global eggs
    eggs='Hello'
    print(eggs) # Prints 99


eggs=99
span()

这是我的实验-

def span():
    eggs='Hello'
    print(eggs)
    global eggs 
    print(eggs)

eggs=99
span()

这会导致错误-

  在声明之前使用

蛋名称。

我的目的是想出一种在程序的特定位置使用全局值的方法,而在其余时间中,局部变量将其值保持在函数内部。

请提出解决此问题的方法。

2 个答案:

答案 0 :(得分:2)

您可以使用globals(),它是全局变量的指示(与locals()相对):

def span():
    eggs='Hello'
    print(eggs)
    eggs = globals()["eggs"]
    print(eggs)

eggs=99
span()

# Outputs:
# Hello
# 99

答案 1 :(得分:0)

实际上,您的第一个代码可以正常工作:)

看小提琴:

https://repl.it/@WaskaChaduneli/Stackoverflow54529122