local variable ‘x‘ referenced before assignment错误
前言:报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
本人能力能力有限,希望能帮到你
global是全局、全面的意思 ↩︎
local是本地、局部的意思,nonlocal就是反义词 ↩︎
local variable ‘x‘ referenced before assignment错误相关推荐
- python UnboundLocalError: local variable 'log_f' referenced before assignment 错误
在写一个python程序,用finally处理异常的时候,报了"UnboundLocalError: local variable 'log_f' referenced before ass ...
- UnboundLocalError: local variable 'end_page' referenced before assignment
UnboundLocalError: local variable 'end_page' referenced before assignment 错误信息是在指出一个在使用之前没有赋值的局部变量.在 ...
- python 错误--UnboundLocalError: local variable 'num' referenced before assignment
val = 9 def test(flag): if flag: val = 1 else: print("test") return val if __name__ == '__ ...
- 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 ...
- python的UnboundLocalError: local variable 'xxx' referenced before assignment
From: http://blog.sina.com.cn/s/blog_8d3652760101d01p.html 一.意思: 本地变量xxx引用前没定义. 二.错误原因 在于python没有变量的 ...
- Python函数定义变量报错:local variable ‘a‘ referenced before assignment
Python 全局变量与global关键字 在Python的变量使用中,经常会遇到这样的错误: local variable 'a' referenced before assignment 它的 ...
- local variable 'xxx' referenced before assignment
local variable 'xxx' referenced before assignment 定义了一个全局变量 createTableFlag ,Python的一个函数里面引用这个变量,并改变 ...
- 【debug】UnboundLocalError local variable a referenced before assignment
1)下面这种情况是不会报错的: >>> x = 10 >>> def bar(): ... print(x) >>> bar() 10 (2)但是 ...
- local variable xxx referenced before assignment
在python中有一个经典错误: local variable xxx referenced before assignment#赋值前引用的局部变量xxx 这里引入两个概念: 局部变量指的在函数内部 ...
最新文章
- [转]你在修佛,还是在修魔
- sqplus操作oracle,sqlplus操作oracle
- c2065 未声明的标识符 解决ok
- 如何预防食品被新冠病毒污染?国家卫健委权威解答来了
- HTML元素title里面如何换行
- 中国剩余定理及其拓展
- git object 很大_这才是真正的Git——Git内部原理
- Ubuntu中useradd和adduser的区别
- iphone储存空间系统怎么清理_iPhone 储存空间里的“系统”项占用过多怎么办?...
- 微信用久了,越来越占内存怎么办?
- 史上首个人脸识别禁令出台,警察用来抓罪犯也不行!旧金山可真行
- Java使用IntelliJ IDEA创建一个基于Swing的GUI图形化程序,打包发布为jar
- poj3233(Matrix Power Series)快速幂
- opencv+VS2005安装说明
- 循环神经网络应用举例
- 科学家首次3D生物打印出血管化肿瘤,并成功使用免疫疗法治疗
- 参观营收上亿的私域流量企业
- 【原创】网页全站下载器4.0黑色版,利用爬虫获取所有js、css、img!
- 生信学习笔记:fastp质控处理生成的report结果解读
- LibcSearcher报错:no matched libc,please add more libc or try others