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)
上一篇 2022年6月17日 下午2:36
下一篇 2022年6月17日 下午2:36


相关推荐

  • Unicode编码转换工具_韓國萬聖節

    Unicode编码转换工具_韓國萬聖節/** * *@authorypan  *unicode编码转换工具类 *in2009-11-02 */publicclassParseUnicode{  //将unicode编码转换成中文 publicstaticStringdecodeUnicode(finalStringdataStr){   intstart=0;          intend

    2025年5月25日
    4
  • 用基尔霍夫定律求解电路时_基尔霍夫定律总结

    用基尔霍夫定律求解电路时_基尔霍夫定律总结1.先了解几个名词(1)支路一个二端原件视为一条支路–图中6个二端原件所以有6条支路。(2)结点两条或以上的支路连接的点。d,e可以看做一个结点。(3).回路(4).网孔1,22,

    2022年8月1日
    8
  • 2018年系统架构设计师上午真题

    2018年系统架构设计师上午真题●在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统的响应序列应为( )。(1)A.②⑧③④⑤①⑦⑥⑨B.②③⑧④⑥⑨①⑤⑦C.①②③④⑤⑥⑦⑧⑨D.②⑧③⑤⑦①④⑥⑨●某计算机系统中的进程管理采用三态模型,那么下图所示的PCB(进程控制块)的组织方式采用( ),图中( )。…

    2022年6月1日
    50
  • 计算机网络试题及答案(史上最全)

    计算机网络试题及答案(史上最全)计算机网络试题及答案 一 一 填空题 1 所谓计算机网络 会议是利用通信设备和线路将地理位置不同的 功能独立的多个计算机系统互连起来 以功能完善的网络软件实现网络中资源共享和数据通讯的系统 2 计算机网络如果按作用范围进行分类 可分为广域网 WAN 局域网 LAN 和城域网 MAN 3 网络协议通常采用分层思想进行设计 OSIRM 中的协议分为 7 层 而 TCP IPRM 中协议分为 4 层 4 在 TCP IPRM 中 用于互联层的协议主要有 ARP IP RARP ICMP 和 I

    2026年3月17日
    3
  • 命名实体识别(NER)综述

    命名实体识别(NER)综述本文是中文信息处理课程的期末考核大作业摘要命名实体识别是自然语言处理中的热点研究方向之一 目的是识别文本中的命名实体并将其归纳到相应的实体类型中 首先阐述了命名实体识别任务的定义 目标和意义 然后介绍了命名实体识别研究的发展进程 从最初的规则和字典方法到传统的统计学习方法再到现在的深度学习方法 不断地将新技术应用到命名实体识别研究中以提高性能 最后针对评判命名实体识别模型的好坏 总结了常用的若干数据集和常用工具 并给出了未来的研究建议 1 引言 命名实体识别这个术语首次出现在 MUC 6

    2026年3月16日
    2
  • 【Android】实现登录、注册、数据库操作(极简洁)[通俗易懂]

    我最近又写了一篇文,是这篇文章的升级版,借此文引流一下:《【Android】实现登录、注册、数据库操作(极复杂)》本篇源码地址(进去找JustLoginRegister):(2019-12-05更新:我已经把Gradle更新到3.5最新版了,dependencies也已经都迁移到androidx了,特此说明)https://github.com/littlecurl/AppProj…

    2022年4月17日
    229

发表回复

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

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