【问题标题】:global statement isn't working, and I don't understand why全局声明不起作用,我不明白为什么
【发布时间】:2020-08-22 06:00:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: python function scope global local


    【解决方案1】:

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

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

    话虽如此,似乎没有充分的理由将g 设为全球;一般不鼓励使用全局变量。

    【讨论】:

    • 但是zerofunc(g)不是在函数中插入g作为参数并用g替换'value',从而在第三行设置g=0吗?这就是为什么我认为代码可以工作.....
    • 在这种情况下你想要def zerofunc(g):
    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多