内部函数引用外部函数的同名变量或者全局变量,并且对这个变量有修改的报错原因

修改后代码:

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


猜你喜欢

转载自blog.csdn.net/cup160828/article/details/79521388