金鞍玉勒寻芳客,未信我庐别有春。这篇文章主要讲述Python UnboundLocalError: 报错的解决方法相关的知识,希望能为你提供帮助。
python UnboundLocalError: local variable \'****\' referenced before assignment报错的解决方法:
运行如下python代码会报错:
UnboundLocalError: local variable \'val\' referenced before assignment
翻译:本地变量val引用前没有定义
文章图片
一 、报错原因
这是Python变量作用域的问题导致的:
1、内部函数,不修改全局变量时可以访问全局变量
2、内部函数,当修改同名全局变量时,则python会认为它是一个局部变量
3、在内部函数修改同名全局变量之前,如果调用变量名(如print(val)),则引发Unbound-LocalError
文章图片
二、解决办法:
1、如果只是想在函数内使用同名变量,而不改变函数外全局变量的值,则直接在函数内引用该变量前,初始化即可。如下:
文章图片
2、如果想在函数里修改同名全局变量的值之前使用该变量,就需要在函数内使用前用global关键字将被认为是局部的变量定义为全局变量。如下:
文章图片
【Python UnboundLocalError: 报错的解决方法】
推荐阅读
- 面试官问我(什么是静态代理(什么是动态代理?注解反射你会吗?))
- Java开发工程师进阶篇——深入浅出Java集合框架
- Linux系统编程IO标准缓冲区
- Linux系统编程可重入和不可重入函数
- Linux系统编程Linux信号列表
- Linux系统编程进程地址空间和虚拟地址空间
- 物联网OpenWrt编译和修改基础--预科
- 阿里云MongoDB物理备份文件恢复至自建数据库
- Linux系统编程Linux进程管理