问题描述
我是这方面的初学者,在遇到相同问题时遇到困难。 我的代码是这样的:
def zerofunc(value):
global g
value = 0
g = 15
zerofunc(g)
print(g)
我将g设置为函数内部的global以产生0作为最终结果,但是 它仍然打印出15而不是0。有人可以解释为什么在这种情况下全局语句不起作用,以及我应该怎么做才能避免相同的错误?
解决方法
您的函数将名为value
的变量设置为零,使g保持不变。如果您想更改g
,则可以使用以下代码进行修改:
def zerofunc(value):
global g
g = 0
g = 15
zerofunc(g)
print(g)
话虽这么说,似乎没有充分的理由使g
成为全球性;通常不鼓励使用全局变量。