Python 3 中全局变量的正确用法是什么?:
在核心脚本中声明
global VAR_NAME
一次(不在函数内)然后简单地将变量引用为VAR_NAME
其他任何地方在每个使用全局变量的函数中声明
global VAR_NAME
一次,然后简单地将变量引用为VAR_NAME
用于函数的其余部分和核心脚本本身
原文由 Eden Crow 发布,翻译遵循 CC BY-SA 4.0 许可协议
Python 3 中全局变量的正确用法是什么?:
在核心脚本中声明 global VAR_NAME
一次(不在函数内)然后简单地将变量引用为 VAR_NAME
其他任何地方
在每个使用全局变量的函数中声明 global VAR_NAME
一次,然后简单地将变量引用为 VAR_NAME
用于函数的其余部分和核心脚本本身
原文由 Eden Crow 发布,翻译遵循 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 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
在第一种情况下,global 关键字毫无意义,所以这是不正确的。在模块级别定义变量使其成为全局变量,您不需要 global 关键字。
第二个例子是正确的用法。
但是,全局变量最常见的用法是不在任何地方使用 global 关键字。仅当您想在函数/方法中 重新分配 全局变量时才需要 global 关键字。