Python学习day15

__init__.py
包的导入:
import 语句
from import 语句
from import * 语句
__init__.py内的 __all__列表
作用:
用来记录此包中有哪些包或模块需要在from import * 语句导入时被导入
说明:
__all__列表只在from xxx import*语句中起作用
包的相对导入:
是指包内模块的相互导入
语法:
from 相对路径包或模块 import 属性或模块
或from 相对路径包或模块import*
说明:
包的相对导入不能用于import xxx语句中
相对路径:
. 代表当前目录
.. 代表上一级目录
... 代表上二级目录
.... 以此类推
注:相对导入时不能超出包的外部
包的加载路径:
同模块的加载路径搜索
搜索当前路径
搜索sys.path给定的路径
异常(基础)exception
错误是指由于逻辑或语法等导入一个程序无法正常执行的问题
特点:
有些错误是无法预知的
异常是指程序出错时标识的一种状态,当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态
作用:
用作信号,通知上层调用者有错误需要处理
try 语句:
两种语法:
try-except 语句
try-finally语句
try-except语句语法:
try:
可能触发异常的语句
except 错误类型1 [as 变量1]:
异常处理语句1
except 错误类型2[ as 变量2]:
异常处理语句2
except (错误类型3, 错误类型4)[ as 变量3]:
异常处理语句3
………
except:
异常处理语句other
else:
末发生异常语句
finally:
最终语句
作用:
尝试捕获异常,将程序转为正常状态并继续执行

try-finally语句
语法:
try:
可能触发异常的语句
finally:
一定要执行的最终语句
说明:
finally子句不可省略
一定不存在except子句
作用:
通常用try-finally语句来做触发异常时必须要处理的事情,
无论异常是否发生,finally子句都会被执行
注:try-finally语句不会改变程序的状态(正常/异常)状态
raise语句
作用:
触发一个错误,让程序进入异常状态
语法:
raise异常类型
或 raise异常对象
assert 语句(断言语句)
语法:
assert 真值表达式,错误数据(通常是字符)
作用:
当真值表达式为False时,用错误数据创建一个AssertionError类型的错误,并进入异常状态
等同于:
if 真值表达式 == False;

raise AssertionError(错误数据)

为什么要用异常处理机制:
在程序调用层数较深时,像主调函数传递错误信息需要层层return返回比较麻烦,所以用异常处理机制来解决此类问题
Python学习day15