前言:报local variable ‘x‘ referenced before assignment错误 通常是两种原因: 一是函数试图修改全局变量; 二是内部函数试图修改外部函数变量。


先介绍两个概念:
1.局部变量是定义在函数内部定义并使用的变量,它只在函数内部有效。
2.全局变量是定义在函数外部,它既可以在各函数的外部使用,也可在各函数内部使用。

情况一:函数欲修改全局变量

声明在最前面的变量就是全局变量,通俗讲就是公用的,所以func1在 ‘小岳岳’ 后面拼接 ‘唱歌’ 字符串时没有修改权限当然会报错;但func2中的变量name是局部变量,它自己可以随便修改

name = '小岳岳' # 全局变量,声明在函数外(公用的)def func1():name += '唱歌'print(name)
func1() #--> 系统报错:local variable ‘name‘ referenced before assignmentdef func2():name = '小月月' # 局部变量,声明在函数内(自用的)name += '大美女'print(name)
func2() #--> 小月月大美女
解决方法:用 global 1 声明name为全局变量
name = '小岳岳'  def func1():global name name += '唱歌'print(name)func1()  # --> 小岳岳唱歌

情况2:内部函数欲修改外部函数变量

这种情况可以理解成,i 是func的局部变量,但对in_func则是全局变量

def func():i = 99def in_func():  # 内部函数i += 1print(i)in_func()func()
解决办法是加 nonlocal 2

本人能力能力有限,希望能帮到你


  1. global是全局、全面的意思 ↩︎

  2. local是本地、局部的意思,nonlocal就是反义词 ↩︎

local variable ‘x‘ referenced before assignment错误相关推荐

  1. python UnboundLocalError: local variable 'log_f' referenced before assignment 错误

    在写一个python程序,用finally处理异常的时候,报了"UnboundLocalError: local variable 'log_f' referenced before ass ...

  2. UnboundLocalError: local variable 'end_page' referenced before assignment

    UnboundLocalError: local variable 'end_page' referenced before assignment 错误信息是在指出一个在使用之前没有赋值的局部变量.在 ...

  3. python 错误--UnboundLocalError: local variable 'num' referenced before assignment

    val = 9 def test(flag): if flag: val = 1 else: print("test") return val if __name__ == '__ ...

  4. UnboundLocalError: local variable ‘XXX‘ referenced before assignment解决办法

    一.举例: 计算a到10的和 sum=0 def func(a):while a<=10:sum+=aa+=1return sum print(func(9)) 运行结果: UnboundLoc ...

  5. python的UnboundLocalError: local variable 'xxx' referenced before assignment

    From: http://blog.sina.com.cn/s/blog_8d3652760101d01p.html 一.意思: 本地变量xxx引用前没定义. 二.错误原因 在于python没有变量的 ...

  6. Python函数定义变量报错:local variable ‘a‘ referenced before assignment

    Python 全局变量与global关键字 ​ 在Python的变量使用中,经常会遇到这样的错误: local variable 'a' referenced before assignment 它的 ...

  7. local variable 'xxx' referenced before assignment

    local variable 'xxx' referenced before assignment 定义了一个全局变量 createTableFlag ,Python的一个函数里面引用这个变量,并改变 ...

  8. 【debug】UnboundLocalError local variable a referenced before assignment

    1)下面这种情况是不会报错的: >>> x = 10 >>> def bar(): ... print(x) >>> bar() 10 (2)但是 ...

  9. local variable xxx referenced before assignment

    在python中有一个经典错误: local variable xxx referenced before assignment#赋值前引用的局部变量xxx 这里引入两个概念: 局部变量指的在函数内部 ...

最新文章

  1. [转]你在修佛,还是在修魔
  2. sqplus操作oracle,sqlplus操作oracle
  3. c2065 未声明的标识符 解决ok
  4. 如何预防食品被新冠病毒污染?国家卫健委权威解答来了
  5. HTML元素title里面如何换行
  6. 中国剩余定理及其拓展
  7. git object 很大_这才是真正的Git——Git内部原理
  8. Ubuntu中useradd和adduser的区别
  9. iphone储存空间系统怎么清理_iPhone 储存空间里的“系统”项占用过多怎么办?...
  10. 微信用久了,越来越占内存怎么办?
  11. 史上首个人脸识别禁令出台,警察用来抓罪犯也不行!旧金山可真行
  12. Java使用IntelliJ IDEA创建一个基于Swing的GUI图形化程序,打包发布为jar
  13. poj3233(Matrix Power Series)快速幂
  14. opencv+VS2005安装说明
  15. 循环神经网络应用举例
  16. 科学家首次3D生物打印出血管化肿瘤,并成功使用免疫疗法治疗
  17. 参观营收上亿的私域流量企业
  18. 【原创】网页全站下载器4.0黑色版,利用爬虫获取所有js、css、img!
  19. 生信学习笔记:fastp质控处理生成的report结果解读
  20. LibcSearcher报错:no matched libc,please add more libc or try others

热门文章

  1. oracle存储过程超详细使用手册
  2. Android-PickerView系列之介绍与使用篇(一)
  3. 牛客网计算机考研机试真题-abc
  4. 关键路径法(Critical Path Method, CPM)
  5. JavaScript高级编程(一)——基本概念
  6. 最牛的商业模式,化肥厂利用买化肥送车,一年总利润600多万?
  7. 外周传出神经的递质有,外周神经系统神经递质
  8. windows 10桌面快捷方式小箭头
  9. DNW FOR WIN7
  10. [架构之路-160]-《软考-系统分析师》-10-系统分析-7-数据与数据流程分析、需求规格说明书