python: local variable 'xxx' referenced before assignment
2024-10-21 17:36:05
问题发现
xxx = 23
def PrintFileName(strFileName):
if xxx == 23:
print strFileName
xxx = 24 PrintFileName("file")
报错
Traceback (most recent call last):
File "C:/Users/Desktop/del.py", line 7, in <module>
PrintFileName("file")
File "C:/Users/jihite/Desktop/del.py", line 3, in PrintFileName
if xxx == 23:
UnboundLocalError: local variable 'xxx' referenced before assignment
意思说局部变量‘xxx’前边没有定义,但是最前面不是定义了吗。注意这里提示是局部变量,一开始定义的为全局变量。如果这里定义的就是全局变量可以通过关键字global来说明
xxx = 23
def PrintFileName(strFileName):
if xxx == 23:
global xxx
print strFileName
xxx = 24 PrintFileName("file")
运行正常。
但是这样也是没错
xxx = 23
def PrintFileName(strFileName):
if xxx == 23:
print xxx PrintFileName("file")
问题所在
在python的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上global关键字。
最新文章
- Android随笔之——Activity中启动另一应用
- Gulp如何编译sass
- DEDE有无缩略图如何调取
- Lingo语法
- nginx配置rewrite
- .net winform软件自动更新
- umask:遮罩码
- Matlab求范数
- 图论(2-sat):HDU 4421 Bit Magic
- 关于 iOS socket 都在这里了
- Lesson 7: Responsive Typography In Action
- iOS - UITableViewCell Custom Selection Style Color
- 随记,C#修饰符访问级别
- 武汉科技大学ACM :1004: C语言程序设计教程(第三版)课后习题6.3
- 如何把程序钉到Windows7任务栏(修正版)
- centos下的activemq的配置及PHP的使用
- CSS个别属性
- python习题二
- PyQt5——基本控件
- mybatis中两种取值方式?谈谈Spring框架理解?
热门文章
- 第一个.NET Core应用,创建.NET Core命令
- Spring Boot - Spring Async
- 用Echarts的力向导图可视化数据
- 深入了解java虚拟机(JVM) 第三章 内存区域----堆空间
- js返回上一级代码和刷新页面代码
- 集合的addAll方法--list.addAll(null)会报错--java.lang.NullPointerException
- Windows下使用DOS命令进入MySQL数据库
- [ActionScript 3.0] 如何获得实例对象的类名及类
- [转] Linux 硬件设备查看命令
- Touchmove获取当前触摸的Dom节点