如何使局部变量(在函数内)成为全局变量

新手上路,请多包涵

我正在使用函数,这样我的程序就不会一团糟,但我不知道如何将局部变量变成全局变量。

原文由 user1396297 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 341
2 个回答

这里有两种方法来实现同样的事情:

使用参数并返回(推荐)

 def other_function(parameter):
    return parameter + 5

def main_function():
    x = 10
    print(x)
    x = other_function(x)
    print(x)

当您运行 main_function 时,您将获得以下输出

>>> 10
>>> 15

使用全局变量(永远不要这样做)

 x = 0   # The initial value of x, with global scope

def other_function():
    global x
    x = x + 5

def main_function():
    print(x)    # Just printing - no need to declare global yet
    global x   # So we can change the global x
    x = 10
    print(x)
    other_function()
    print(x)

现在你将得到:

 >>> 0    # Initial global value
>>> 10   # Now we've set it to 10 in `main_function()`
>>> 15   # Now we've added 5 in `other_function()`

原文由 Alex L 发布,翻译遵循 CC BY-SA 4.0 许可协议

只需在任何函数之外声明您的变量:

 globalValue = 1

def f(x):
    print(globalValue + x)

如果您需要从函数内部 分配 给全局变量,请使用 global 语句:

 def f(x):
    global globalValue
    print(globalValue + x)
    globalValue += 1

原文由 Greg Hewgill 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题