”local variable 'xxx' referenced before assignment“python函数中改变外部定义数值时报错

Posted CrazyJhq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了”local variable 'xxx' referenced before assignment“python函数中改变外部定义数值时报错相关的知识,希望对你有一定的参考价值。

原代码如下:

lane_flag = 0
def change_lane():
    lane_flag = ~lane_flag

主程序中调用change_lane()时,报错如下:local variable ‘xxx‘ referenced before assignment(变量在引用前还没有定义)

(如果不对lane_flag进行操作,则不会出现以上错误)

例如:

lane_flag = 0
def change_lane():
    if lane_flag == 0:
        print("It is 0 !")

该段代码则不会报错

错误原因如下:

  Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global。

修改如下:(在函数里声明lane_flag为global)

lane_flag = 0
def change_lane():
    global lane_flag
    lane_flag = ~lane_flag

 

以上是关于”local variable 'xxx' referenced before assignment“python函数中改变外部定义数值时报错的主要内容,如果未能解决你的问题,请参考以下文章