有没有办法在我的本地函数中的某个点使用全局变量?
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:
您可以使用 globals()
这是全局变量的字典(与 locals()
相对):
def span():
eggs='Hello'
print(eggs)
eggs = globals()["eggs"]
print(eggs)
eggs=99
span()
# Outputs:
# Hello
# 99
为了理解我的问题,这里有一段使用了 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:
您可以使用 globals()
这是全局变量的字典(与 locals()
相对):
def span():
eggs='Hello'
print(eggs)
eggs = globals()["eggs"]
print(eggs)
eggs=99
span()
# Outputs:
# Hello
# 99