Python世界:报错Debug之referenced before assignment
Python世界:报错Debug之referenced before assignment
- 一句话总结
- 案例分析
一句话总结
类中函数引用结构体变量,出现报错如下:
Python Debug:local variable ‘split_num’ referenced before assignment
解决:该变量改为全局变量使用,并在用前声明 global split_num
。
案例分析
使用背景:在函数内部定义变量,再接着定义子函数,引用了该变量。
如下面代码就会报错:local variable ‘depth’ referenced before assignment
def f1():
depth = 0
def func():
depth += 1
func()
return
根因分析:
- 本质是函数内部声明的变量,默认类型是局部变量。
- 而跟全局变量同名时,先引用局部变量,会不符合预期,提示未被初始化。
全局变量报错:UnboundLocalError: local variable ‘l’ referenced before assignment
- 报错解决方案参考:link1,link2,link3