Python 3 中全局变量的正确使用

新手上路,请多包涵

Python 3 中全局变量的正确用法是什么?:

  1. 在核心脚本中声明 global VAR_NAME 一次(不在函数内)然后简单地将变量引用为 VAR_NAME 其他任何地方

  2. 在每个使用全局变量的函数中声明 global VAR_NAME 一次,然后简单地将变量引用为 VAR_NAME 用于函数的其余部分和核心脚本本身

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

阅读 705
2 个回答

在第一种情况下,global 关键字毫无意义,所以这是不正确的。在模块级别定义变量使其成为全局变量,您不需要 global 关键字。

第二个例子是正确的用法。

但是,全局变量最常见的用法是不在任何地方使用 global 关键字。仅当您想在函数/方法中 重新分配 全局变量时才需要 global 关键字。

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

如果您使用全局变量的方式会被解释为对局部变量的赋值,则需要在函数中使用 global 关键字。如果没有 global 关键字,您将创建一个将全局隐藏在函数范围内的局部变量。

这里有一些例子:

 global_var = 1

def example1():
    # global keyword is not needed, local_var will be set to 1.
    local_var = global_var

def example2():
    # global keyword is needed, if you want to set global_var,
    # otherwise you will create a local variable.
    global_var = 2

def example3():
    # Without using the global keyword, this is an error.
    # It's an attempt to reference a local variable that has not been declared.
    global_var += 1

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

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