Python 包和模块
First Post:
Last Update:
Last Update:
概念
- 模块
- 简单来讲, 模块是单独的 py 文件
- 包
- 一个有层次的文件命令结构, 内部可以包含多个模块和子包
- 库
- 完成一定功能代码的集合
- 可以是模块, 也可以是包
包和模块
创建
模块就是 .py
文件
包的创建, 需要在目录中创建一个名为 __init__.py
文件1
一般都建议创建 __init__.py
文件
__init__.py
作用:
- 导入包的时候, 会自动执行
__init__.py
可以做一些包的预操作 - 导入子包
1 |
|
信息
dir()
方法, 返回模块拥有的 API, 具体细节网上查
__file__
特殊变量, 储存的是模块的绝对路径
获取模块信息, 例:
1 |
|
导入
模块导入的方法并不存在内存消耗的区别
模块导入时, 有其检索顺序
- 第一次导入
- 第一级, 按内置模块顺序检索
- 第二级
- 按
sys.path
, 路径列表 - 追加路径, …
- 按
- 第二次导入
追加路径:
1 |
|
常规导入
模块导入
1 |
|
包内模块导入
1 |
|
from 语句
1 |
|
导入场景
局部导入
1 |
|
循环导入
在模块 A 导入了模块 B
又在模块 B 中导入模块 A
引起循环导入
注: import
语句只会运行一次
可选导入
会遇到两个功能相近的包, 想要有个备选包
例如: request
库和 aiohttp
库
1 |
|
包内导入
包内导入分绝对导入2和相对导入
- 绝对导入:
通过路径列表导入 - 相对导入:
通过.
指代相对路径
绝对导入:
1 |
|
相对导入:
1 |
|