今日python:函数的作用域与异常处理

作用域:变量可以使用的范围

程序的变量并不是在所有位置都能使用的,访问的权限决定于变量的在哪里赋值的

作用域:

局部作用域

函数作用域(闭包以外的函数)

全局作用域:在定义到整片文档结束之间使用

内建作用域

局部-》函数-》全局-》内建

python中只有模块、函数、类才会引入新的的作用域去,

其他的(if/if-elif-else/while/for)等不会引入新的作用域的


异常处理

1.需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行

ry……except……else

格式:

try:

    语句t

except 错误码 as e:

    语句1

except 错误码 as e:

    语句2

……

except 错误码 as e:

    语句n

else:

    语句e

注意:else语句可有可无

作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理

逻辑:当程序执行到try-except-else语句时

1、如果当try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应"语句"

2、如果当try“语句t”执行出现错误,没有匹配的异常,错误将会被提交到上一层的try语句。或者到程序的最上层

3、如果当try“语句t”执行没有出现错误,执行else下的“语句e”(你得有)

codes - 1  try except else 异常处理语句

2.使用except而不使用任何的错误类型

codes - 2 不出现错误类型

3.使用except带着多种异常

codes - 3 错误码的合并

4.错误码的类型

Error Codes - 1
Error Codes - 2
Error Codes  - 3

错误码注意事项:

1.存在优先级的问题  实际为类与类的继承关系

      错误其实是class(类),所有的错误都继承自BaseException,所以在捕获的时候,它捕获了该类型的错误,还把子类一网打尽 

    父类 基类 子类  (待研究)

codes -  3

2.跨越多层调用

跨越多层调用,main调用了func2,func2调用了func1,func1出现了错误,这是只要main捕获到了就可以处理

codes - 4

下节课:Try except finally