全局语句不起作用,我不明白为什么

global statement isn't working, and I don't understand why

我是这方面的初学者,我很难找到与我的问题相同的案例。 我的代码是这样的:

def zerofunc(value):
      global g
      value = 0
g = 15
zerofunc(g)
print(g)

我在函数内部将 g 设置为全局以生成 0 作为最终结果,但是 它仍然打印出 15 而不是 0。谁能解释为什么全局语句在这种情况下不起作用,以及我应该怎么做才能避免同样的错误?

您的函数将名为 value 的变量设置为零,而 g 保持不变。如果你想改变,g,这段代码可以做到:

def zerofunc(value):
      global g
      g = 0
g = 15
zerofunc(g)
print(g)

话虽这么说,似乎没有充分的理由使 g 全球化;通常不鼓励使用全局变量。