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

问题描述

我是这方面的初学者,在遇到相同问题时遇到困难。 我的代码是这样的:

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成为全球性;通常不鼓励使用全局变量。