美文网首页
UnboundLocalError: local variabl

UnboundLocalError: local variabl

作者: 大眼杰的世界 | 来源:发表于2020-07-15 09:23 被阅读0次

    该错误的内容翻译过来就是:局部变量total没有定义就使用了。

    现象

    total = 5
    def change():
         total = total + 1
         print total
    change()
    

    执行这个函数,会提示“UnboundLocalError: local variable 'total' referenced before assignment”

    原因

    如果在一个范围内,对一个变量进行赋值,那么这个变量就会被认为是局部变量,就像在change()这个函数范围之内,我们对total这个变量进行了重新赋值:total=total+1,那么编译器就会认为total这个变量是一个局部变量,而这个赋值表达式实际上是从右向左进行的,也就是说,在进行total+1运算的时候,total并没有被定义,所以就出了这个UnboundLocalError错误

    解决办法

    在total赋值之前,先用global 关键字将total变为一个全局变量,这样total就被定义过了,可以执行了,如下:

    total = 10
    def change():
        global total
        total = total + 1
        print total 
    change()
    

    相关文章

      网友评论

          本文标题:UnboundLocalError: local variabl

          本文链接:https://www.haomeiwen.com/subject/dptdhktx.html