Python-不明白为什么会发生unbundLocal错误
我这里哪里错了?
counter = 0def 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