”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

 

posted @ 2020-05-19 22:07  CrazyJhq  阅读(935)  评论(0编辑  收藏  举报