修改后代码:
def leijia(n): sum=0 '''如果内部函数有引用外部函数的同名变量或者全局变量,并且对这个变量有修改.那么python会认为它是一个局部变量,又因为函数中没有sum的定义和赋值,所以报错''' for i in range(0,n): sum+=i print(sum) leijia(50)
修改前代码:
def leijia(n): for i in range(0,n): sum+=i print(sum) leijia(50)
报错:UnboundLocalError: local variable 'sum' referenced before assignment
原因:
如果内部函数有引用外部函数的同名变量或者全局变量,并且对这个变量有修改.那么python会认为它是一个局部变量,又因为函数中没有sum的定义和赋值,所以报错'''
相关博客链接:http://blog.csdn.net/my2010sam/article/details/17735159