gpt4 book ai didi

python - 为什么会发生这个 UnboundLocalError(关闭)?

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

我在这里做错了什么?

counter = 0

def increment():
counter += 1

increment()

上面的代码抛出一个UnboundLocalError

最佳答案

Python 没有变量声明,所以它必须找出 scope变量本身。它通过一个简单的规则来做到这一点:如果在函数内部对变量进行了赋值,则该变量被视为本地变量。 [1] 因此,这条线

counter += 1

隐式地使 counterincrement() 本地化。但是,尝试执行此行将尝试在分配局部变量 counter 之前读取它的值,从而导致 UnboundLocalError . [2]

如果 counter 是全局变量,global关键字会有所帮助。如果 increment() 是局部函数,而 counter 是局部变量,则可以使用 nonlocal在 Python 3.x 中。

关于python - 为什么会发生这个 UnboundLocalError(关闭)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9264763/

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