我可以在 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