- 此问题在此处已有答案**:
Using global variables in a function(25个答案)
16小时前关门了。
从这个代码:
COUNT = 0
def increment():
COUNT = COUNT + 1
increment()
出现以下错误:
Traceback (most recent call last):
File "test.py", line 6, in <module>
increment()
File "test.py", line 4, in increment
COUNT = COUNT+1
UnboundLocalError: local variable 'COUNT' referenced before assignment
为什么?我怎样才能从函数内部递增全局变量COUNT
?
2条答案
按热度按时间ibps3vxo1#
使用
global
语句,如下所示:不使用
global
也可以访问全局变量,但要更改全局变量的值,需要使用该语句。bzzcjhmw2#
这是因为全局变量不会渗透到函数的作用域中,使用
global
语句强制赋值:注意,使用全局变量是一个非常糟糕的主意-它使代码难以阅读和使用。相反,从你的函数返回一个值(使用
return
),并使用它来做一些事情。如果需要从一个函数范围访问相同的数据,考虑创建一个类。另外值得注意的是,
CAPITALS
一般是为常量保留的,所以这样命名全局变量不是一个好主意,对于普通变量,lowercase_with_underscores
是首选。