当我们对一个变量进行引用,但是该变量在该引用操作之后又被绑定为本地变量,那么就会抛出UnboundLocalErro异常,一般是变量在引用前未被赋值。那么python里有哪些操作会将一个变量绑定为本地变量呢?
1、赋值语句;
2、for i in x语句中的x,会将x绑定为本地变量;
3、del x语句会将x绑定为本地变量;
4、import x语句会将x绑定为本地变量;
5、try:...except Exception as x语句会将x绑定为本地变量。
因此如果在上述语句之前引用了x,且没有预先定义,而是企图之间通过LEGB规则引用上层作用域的变量,那么就会报错UnboundLocalErro。