有人可以解释一下为什么这个功能不起作用吗?“非本地”语句不应该可以x理解 in g,因此 in h?
def f():
def g():
nonlocal x
x= 1
def h():
print(x)
>>> SyntaxError: no binding for nonlocal 'x' found
编辑:我使用 nonlocal 是为了不在除以下x之外的任何地方定义g():我必须在我的代码中定义几个变量,并希望在函数中进行init_var()。为了方便起见,我想避免在我的主要功能中声明它们。有没有办法为此目的调整以前的代码?