python报错 local variable ‘var‘ referenced before assignment

UnboundLocalError: local variable ‘var’ referenced before assignment
赋值前引用的局部变量“var”

错误示例1

var = 10
def f1():
    print(var)
    var = 2
    print(var)
f1()

var为全局变量时,在函数中对其修改且未声明。
解决方法
调用前声明全局变量 global var

错误示例2

def f2():
    var = 0
    def f3():
        var *= 0
        return var
    return f3()
f2()

var为f2中定义的局部变量,在嵌套函数中修改其值且未声明。
解决方法
在嵌套函数中提前声明 nonlocal var

猜你喜欢

转载自blog.csdn.net/rfdjds/article/details/119682702