模块
模块是什么
- 模块是一个py文件
- 模块可以定义函数,类和变量,也可以包含可执行文件
模块的作用
- 方便管理函数,类和变量
- 同一类型的代码写到一个模块中,方便调用
自定义模块
- 当一个python模块或者包被导入时,被导入模块的__name__会被设置为模块的名称,通常这是python文件本身的名称去掉.py,主文件里的__name__会被设置为__main__
- 在模块中运用代码
if __name__=="__main__"
来避免运行主文件时调用了模块中的测试代码,因为在主文件中调用模块时,模块的__name__被设置为模块的模块名而非__main__ - 使用__all__可以控制其他文件import *时哪些内容(函数)可以被导入,但是用import模块方式,不受模块中__all__限制
包
为什么需要包
很多模块文件放到一个目录下会引起管理混乱
包的基本介绍
- 从结构上看,包就像一个文件夹,在该文件夹下包含了一个__init__.py文件,用于标识该文件夹就是一个包
包的使用细节
- 导入包的模块中指定的函数,变量,类
from 包名.模块名 import 函数,类,变量名
- 在__init__.py文件中加入__all__控制别的文件用from 包名 import *时允许导入的模块,但是不能限制import 包名.模块名的导入形式
- 包可以有多个层级,包下面可能还有子包
第三方库
非python官网提供的库,可以通过pip包管理工具导入