目录
一、异常
1、异常处理的语法
如果不确定出现什么异常,可以使用Exception接受所有异常
try:
#你认为可能会出错的语法
except (异常名字1,异常名字2):
#try语句出现异常时执行的代码
else:
#try语句中没有出现异常时的代码
finally:
#不管程序有没有出现异常,都要执行的代码
#########################
try:
#你认为可能会出错的语法
except 异常名字 as error:
#try语句出现异常时执行的代码
print(error)
else:
#try语句中没有出现异常时的代码
finally:
#不管程序有没有出现异常,都要执行的代码
#########################
try:
#你认为可能会出错的语法
except 异常名字 as error:
#try语句出现异常时执行的代码
print(error.args)
else:
#try语句中没有出现异常时的代码
finally:
#不管程序有没有出现异常,都要执行的代码
2、抛出异常
如果程序没有按照自己想象的样子执行出来,这时候可以抛出一个异常。例如自己写了一个SDK代码包,别人可以直接使用里面写的类和方法,如果是因为使用者自身传参数错误导致的错,那么可以直接抛出异常提醒使用者,这样就不会一报错就找到开发包的人。
raise ValueError("你的xxx传错了"),其中ValueError有很多种类型,需要对应找到错误类型填充。
3、自定义异常
自定义异常需要继承exception类。
二、模块和包
包本质上是一个文件夹,1个包里面装有相关联的模块,1一个模块可以看做是一个py.的文件。创建模块和包更方便代码的管理和项目的开发。
1、模块
- 可以只导入某一个模块中的函数或者类。
- 不建议使用import *,因为可能会有很多歌相同名字的模块,加载过多。
- 也可以将导入进的模块重新命名,根据自己的需求重新as一个名字,简化名字,方便调用。
2、包
- 要想让python识别出包,必须在这个文件夹中创建一个叫做__init__.py的文件,这个文件是一个空文件,但是拓展名必须是py. 。
- 导入方式和导入模块的方式一样。
- 如果同一个包中的模块想要相互导入,使用import xx from xx。
3、模块查找路径
- 查找导入包的路径有哪些:import sys print(sys.path)
- 绝对路径:详细的写入需要从哪里导入,from xxx import xxx
- 绝对路径:from .xxx import xxx , 其中 "." 代表从当前目录下;若只想导入某个模块里面导入某个函数:from .model import function
- 导入子模块:from ..model import function,其中 ".." 代表上级目录
4、__all__ 变量
- 模块__all__变量的作用:当在模块中使用了__all__变量定义,如 __all__=['A','B'],那么在引入该模块的内容时,只能使用__all__变量中定义的变量。当使用 from model import *
- 包中使用__all__变量:如果在__init__.py文件中使用了all变量,使用import * 的时候,将不能导入任何模块,需要强制写出来要导入的模块。或者是在相应的包中的__init__.py 文件中,写一个all变量 __all__=[]
to be continued...
---------------------
不忙的时候再来吧,感觉要重新总结