无法在Python函数中递增全局变量。
无法在Python函数中递增全局变量。
这个问题在这里已经有了答案:
从以下代码中:
COUNT = 0 def increment(): COUNT = COUNT + 1 increment()
我得到了以下错误:
Traceback (most recent call last): File "test.py", line 6, in increment() File "test.py", line 4, in increment COUNT = COUNT+1 UnboundLocalError: local variable 'COUNT' referenced before assignment
为什么?如何从函数内部递增全局变量COUNT
?
admin 更改状态以发布 2023年5月22日
这是因为全局变量不会漏到函数作用域。使用global
语句强制赋值:
>>> COUNT = 0 >>> def increment(): ... global COUNT ... COUNT += 1 ... >>> increment() >>> print(COUNT) 1
请注意,使用全局变量是一种非常糟糕的想法 - 它使代码难以阅读和使用。相反,从函数中返回一个值(使用return
),并使用它来实现某些功能。如果需要从一系列函数中访问同样的数据,请考虑制作一个类。
值得注意的是,CAPITALS
通常保留用于常量,因此用此命名全局变量是不好的想法。对于普通变量,lowercase_with_underscores
是首选。