Python-不明白为什么会发生unbundLocal错误

我这里哪里错了?

counter = 0

def increment():

counter += 1

increment()

上面的代码抛出一个UnboundLocalError

回答:

Python没有变量声明,因此它必须弄清楚变量本身的范围。它是通过一个简单的规则来做到这一点的:如果在函数内部对变量进行了赋值,则该变量被视为局部变量。[1] 因此,

counter += 1

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

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

以上是 Python-不明白为什么会发生unbundLocal错误 的全部内容, 来源链接: utcz.com/qa/415165.html

回到顶部