2009年2月10日星期二

python中的函数使用到全局变量时的处理







python中的函数使用到全局变量时的处理

num=0

def count():
    print num
    num += 1

if __name__ == '__main__':
    for i in range(8):
        count()
        
    print num


报错:
    count()
  File "drill\test.py", line 7, in count
    print num
UnboundLocalError: local variable ‘num’   referenced before assignment

修改为
def count():
    num = 0
    num = num + 1
不报错,但是结果不正确

主要原因是在于num += 1这一行,因为在函数中修改了num变量,而python认为num是局部变量,此时变量没有赋值,所以报出错误。


修改为
def count():
    global num
    num += 1

程序通过,并且结果正确


没有评论: