有没有办法在我的本地函数中的某个点使用全局变量?

Is there a way to use global variable at a certain point in my local function?

为了理解我的问题,这里有一段使用了 global 关键字的示例代码 -

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()

这会导致错误 -

name eggs is used prior to declaration.

我的意图是想出一种方法,在我的程序中的某个点使用全局值,而在其余时间局部变量在函数内维护它的值。

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

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

看fiddle:

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

您可以使用 globals() 这是全局变量的字典(与 locals() 相对):

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

eggs=99
span()

# Outputs:
# Hello
# 99