Python:UnboundLocalError: local variable 'num' referenced before assignment
程序员文章站
2022-04-01 10:16:37
...
源代码
num = 1
def test():
num += 1
return num
print(test())
错误详情
可能原因
python中出现了没有声明的变量 , py是通过如下简单的规则找出变量的范围 :如果函数内部有对变量的赋值 ,则该变量被认为是本地的,此时可以正常修改。但是若变量不定义在函数内部,且没有进行变量范围的声明(去调用外部变量),程序在函数内部找不到相应变量,所以会出现未定义变量的错误提示消息。
解决方案
将变量声明为全局变量,在调用的时候使用global关键词,则可以正常访问,正确代码如下:
num = 1
def test():
global num
num = num + 1
return num
print(test()) # 输出结果:2
上一篇: Object类
下一篇: 【Node全局变量global模块】
推荐阅读
-
Python | local variable 'xxxx' referenced before assignment
-
_markupbase.py if not match: UnboundLocalError: local variable 'match' referenced before assignment,分析Python 库 html.parser 中存在的一个解析BUG
-
【ROS-Error】 Can't convert image: local variable ‘pil_mode‘ referenced before assignment
-
Python | local variable 'xxxx' referenced before assignment
-
Python---NameError:free variable 'attr_str' referenced before assignment in enclosing scope
-
Python:UnboundLocalError: local variable 'num' referenced before assignment
-
【ROS-Error】 Can't convert image: local variable ‘pil_mode‘ referenced before assignment
-
_markupbase.py if not match: UnboundLocalError: local variable 'match' referenced before assignment,分析Python 库 html.parser 中存在的一个解析BUG