Python中两种UnboundLocalError: local variable ‘xxx’ referenced before assignment情况的解决方法

Python中两种UnboundLocalError: local variable ‘xxx’ referenced before assignment情况的解决方法  1)在子程序中对全局变量的操作,比如val=9deftest(flag):   ifflag:     val=1   else:     print’Error’   returnval test(0)错误提示:UnboundLocalError:localvariable’val’referencedbefo…

大家好,又见面了,我是你们的朋友全栈君。

   1)在子程序中对全局变量的操作,比如
val=9
def test(flag):  
    if flag:  
        val = 1  
    else:  
        print ‘Error’  
    return val 

test(0)
错误提示:UnboundLocalError: local variable ‘val’ referenced before assignment

解决方法:用global关键字来进行说明该变量是全局变量
python代码:
val=9
def test(flag):
    global val
    if flag: 
        val = 1 
    else: 
        print ‘test’ 
    return val

test(0)

    2)局部变量,但仍然报出unboundLocal Error问题,比如:

def test(flag):
   if (a):
      bbb = aaa
   elif(b):
      bbb2 = aaa2
   print(bbb2)
错误提示:UnboundLocalError: local variable ‘bbb2’ referenced before assignment
报错的原因是python认为bbb2不一定能被赋值。

解决方案:先对bbb2赋值
def test(flag):
   bbb2=0
   if (a):
      bbb = aaa
   elif(b):
      bbb2 = aaa2
   print(bbb2)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150003.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 可以用verilog描述而不能用VHDL_verilog多次调用同一模块

    可以用verilog描述而不能用VHDL_verilog多次调用同一模块今天在编译一个Verilog文件,其中嵌入了VHDL的模块,其VHDL模块如下:entityvhdl_moduleisgeneric(PARA1:boolean:=false;–boolean型PARA2:boolean:=false;–integral型);

    2022年9月2日
  • pycharm下载插件_thinkbook和小新哪个好

    pycharm下载插件_thinkbook和小新哪个好Pcharm好用插件推荐!!!

    2022年8月28日
  • 20行Python代码爬取王者荣耀全英雄皮肤

    20行Python代码爬取王者荣耀全英雄皮肤引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。准备工作爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网:我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片…

    2022年5月5日
  • mysql怎么查询上一条记录_MySQL中查询已知记录的上一条和下一条记录「建议收藏」

    mysql怎么查询上一条记录_MySQL中查询已知记录的上一条和下一条记录「建议收藏」设MySQL中有一个形如下表的数据表,表名为test:+——+——+—————+|ID|No|Other|+——+——+—————+|1|1|Someothers1||2|2|Someothers2||3|3|So…

    2022年9月4日
  • shell捕获sqlplus异常_QSqlQuery

    shell捕获sqlplus异常_QSqlQueryHSQLDB是一个使用Java语言编写的关系型数据库,有一个JDBCdriver,支持ANSI-92SQL的一个子集。提供对内存表和硬盘表的小型,快速的引擎。这个产品是HypersonicSQL的后续产品,2001年启动。HSQLDBisarelationaldatabaseenginewritteninJava,withaJDBCdriver,support…

    2022年9月15日
  • Cubieboard2开发要点简记

    Cubieboard2开发要点简记要在Cubieboard2上开发四轴飞行器的控制模块,需要编写远程控制的接收端和底层控制模块。换言之需要编写用户层client软件和driver,本人负责单片机模块,此文是跟踪笔记,权当参考和提醒。值得声明的是,由于嵌入式平台的平台相关性很大,相关操作不一定可以完全再现。学习资料主要参考论坛——————————————————————————————2013年12月23号14点

    2022年7月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号