如何在函数外声明变量时如何操作函数内的变量值?

时间:2013-11-17 06:42:18

标签: python

我想将变量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

我想知道为什么会发生这种情况以及如何解决这个问题。

谢谢。

3 个答案:

答案 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()