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)

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • phpstorm 激活码_在线激活

    (phpstorm 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40…

  • Redis创建高可用集群教程【Windows环境】

    模仿的过程中,加入自己的思考和理解,也会有进步和收获。在这个互联网时代,在高并发和高流量可能随时爆发的情况下,单机版的系统或者单机版的应用已经无法生存,越来越多的应用开始支持集群,支持分布式部署了。而Redis作为缓存服务器的比较出色的一员,它在出生的时候就被设置支持集群,本篇就是介绍Redis集群的介绍和搭建过程!使用的平台是Windows,搭建的思路和Linux上基本一致! 墙…

  • NetCMS使用BUG记录及解决方法

    NetCMS使用BUG记录及解决方法NetCMS1.7版本使用存在两个BUG1.在上传文件时如果勾选“如果文件存在则重命名(格式:月日时5位随机数-原文件),否则将覆盖原文件.”上传的文件路径将错误。  BUG所在,NetCMS.Content.Common.UpLoad类的120行,postedFile.SaveAs(SavePath+@""+_tmps); 恩,找到了,错误就在这里。  找到了错误所在,那解决…

  • java 向上取整 向下取整

    java 向上取整 向下取整Math.ceil()//向上取整,如1.5->2.0Math.floor()//向下取整,如1.5->1.0

  • Linux中vi命令用法「建议收藏」

    Linux中vi命令用法「建议收藏」Linux中vi命令的用法

  • Win32 API 常量定义(四)

    PublicConstMIXER_OBJECTF_HMIDIOUT=(MIXER_OBJECTF_HANDLEOrMIXER_OBJECTF_MIDIOUT)PublicConstMIXER_OBJECTF_MIDIIN=&H40000000PublicConstMIXER_OBJECTF_HMIDIIN=(MIXER_OBJECTF_HANDLEOrMIX

发表回复

您的电子邮箱地址不会被公开。

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