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
程序通过,并且结果正确
订阅:
博文评论 (Atom)
没有评论:
发表评论