有时候编写代码会出现异常处理,Python语言中,类变量是以字典的形式进行处理的,并且遵循方法解析顺序,如果没有处理好这里的关系,就会导致示例中出现的这个问题。
工具/原料
1
计算机
2
虚拟机
方法/步骤
1
首先在编写出的代码里面里面,except语句并不支持以这种方式指定异常,在Python2.x中,需要使用变量e将异常绑定至可选的第二个参数中,才能进一步查看异常的情况。
2
然后是except语句并没有捕获IndexError异常;而是将出现的异常绑定到了一个名为IndexError的参数中,要想在except语句中正确地捕获多个异常,则应将第一个参数指定为元组,然后在元组中写下希望捕获的异常类型。
3
接着遵循所谓的LEGB原则,也就L为本地作用域,E为上一层结构中def或lambda的本地作用域;G为全局作用域;B为内置作用域。Local,Enclosing,Global,Builtin,按顺序查找。
4
然后出现一开始好好的代码,在某个函数内部添加了一个赋值语句之后却出现了UnboundLocalError,使用列表时,Python程序员尤其容易陷入这个圈套。
5
接着使用foo1函数并没有为lst变量进行赋值,但是foo2却有赋值。进行运算lst += [5]只是lst = lst + [5]的简写,foo2函数在尝试为lst赋值,因此,被Python解释器认为是函数本地作用域的变量。
上一篇:赛马娘重复的角色怎么处理