我可以在 Python 的函数范围内创建全局变量吗?
Can I create global variable in fuction scope in Python?
我想知道我是否可以创建一个新变量并将其设置为全局变量。
像这样:
def f():
global new_global_var
if new_global_var is undefined:
new_global_var = None
print(new_global_var)
if __name__ == '__main__':
f()
print(new_global_var)
这似乎是你不应该做的事情,但无论如何,你可以在这里使用globals()
(它本质上就像一个全局变量的字典)来完成你想要的:
def f():
if "hello" not in globals():
globals()["hello"] = 3
if __name__ == '__main__':
f()
print(hello)
您可以“尝试”访问该变量。如果不存在,将引发异常。您将在异常处理程序中创建变量:
def f():
global new_global_var
try:
new_global_var
except NameError:
new_global_var = None
我想知道我是否可以创建一个新变量并将其设置为全局变量。
像这样:
def f():
global new_global_var
if new_global_var is undefined:
new_global_var = None
print(new_global_var)
if __name__ == '__main__':
f()
print(new_global_var)
这似乎是你不应该做的事情,但无论如何,你可以在这里使用globals()
(它本质上就像一个全局变量的字典)来完成你想要的:
def f():
if "hello" not in globals():
globals()["hello"] = 3
if __name__ == '__main__':
f()
print(hello)
您可以“尝试”访问该变量。如果不存在,将引发异常。您将在异常处理程序中创建变量:
def f():
global new_global_var
try:
new_global_var
except NameError:
new_global_var = None