我想将变量count
的值增加1,但只有在下面的代码中调用函数printcount
时才会这样。
global count
count = 0
def PrintCount():
count += 1
print count
PrintCount()
当我运行此代码时,我收到以下错误:
Traceback (most recent call last):
File "C:\Users\Cross\Desktop\Code.py", line 8, in <module>
PrintCount()
File "C:\Users\Cross\Desktop\Code.py", line 5, in PrintCount
count += 1
UnboundLocalError: local variable 'count' referenced before assignment
我想知道为什么会发生这种情况以及如何解决这个问题。
谢谢。
答案 0 :(得分:3)
在函数中使用global
关键字来访问(特别是修改)全局变量count
:
def PrintCount():
global count # <----
count += 1
print count
在函数外声明全局无效。
答案 1 :(得分:3)
在python中,您可以阅读全局变量,但如果没有global
关键字,则无法更改它们。
def PrintCount():
global count
count += 1
print count
但最好的方法是将count
作为参数传递给函数,进行处理,返回这样的值。尽可能避免global
。
def increment(count):
print count + 1
return count + 1
count = increment(count)
答案 2 :(得分:0)
count = 0
def PrintCount():
global count
count += 1
print count
Print()