2024-05-26 11:11:25 发布
网友
无法将f()的本地x绑定到嵌套g()的全局变量x。为什么
f()
x
g()
def f(): x=0 def g(): global x x+=1 print(x) g() g() # added to make seemingly more practical
-
>>> f() ... NameError: global name 'x' is not defined
要避免使用全局变量,只需通过函数g传递一个参数:
g
def f(): x=0 def g(y): y+=1 print(y) g(x) f()
这应该管用
要使x成为函数f()中的全局变量:
def f(): global x x = 0 def g(): global x x += 1 print(x) g() f() # 1
def f(): x = 0 def g(x): x += 1 print(x) g(x) f() # 1
这不仅使您的代码更简洁,而且消除了“全局”的开销
要避免使用全局变量,只需通过函数
g
传递一个参数:这应该管用
要使
x
成为函数f()
中的全局变量:如注释中所述,
x
的“全局”状态在这里是毫无意义的,因此最好将x
作为参数传递给g()
,如下所示:这不仅使您的代码更简洁,而且消除了“全局”的开销
相关问题 更多 >
编程相关推荐