gpt4 book ai didi

python - 为什么我不能在 Python 中设置全局变量?

转载 作者:IT老高 更新时间:2023-10-28 22:01:45 26 4
gpt4 key购买 nike

全局变量在 Python 中是如何工作的?我知道全局变量是邪恶的,我只是在试验。

这在 python 中不起作用:

G = None

def foo():
if G is None:
G = 1

foo()

我收到一个错误:

UnboundLocalError: local variable 'G' referenced before assignment

我做错了什么?

最佳答案

您需要 global声明:

def foo():
global G
if G is None:
G = 1

在 Python 中,您分配给的变量默认成为局部变量。您需要使用 global 将它们声明为全局变量。另一方面,您引用但未分配给的变量不会自动成为局部变量。这些变量指的是封闭范围内最近的变量。

Python 3.x 引入了 nonlocal类似于 global 的语句,但将变量绑定(bind)到其最近的封闭范围。例如:

def foo():
x = 5
def bar():
nonlocal x
x = x * 2
bar()
return x

此函数在调用时返回 10。

关于python - 为什么我不能在 Python 中设置全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com