python 中的模块和库
什么是模块,什么是库
- 模块(module): 就是一个
.py
文件 - 库包(package):比模块更大的管理单位,形式就是一个文件夹
import 加载过程
用法如下:
import module [as alias]
import
最后导入的必须是模块,而不能是库包- 导入模块时,会自上而下加载模块中的代码。(从指定的模块中导入方法,也会加载)
- 导入
包.包.模块
,会先执行包中的__init__.py
文件,然后从上至下加载对应模块中的代码
package 加载过程
在 python3.3
之前,文件目录想当作 package
来引用。必须包含__init__.py
文件(可以是空文件),而 python3.3
以后的版本中,__init__.py
文件则不再需要。
文件导入
绝对导入和相对导入
假如文件目录如下:
study/
├── data
│ ├── __init__.py
│ ├── mysql.py
│ └── redis.py
└── main.py
1. 绝对导入
直接从最顶层的 package
导入
from data import mysql
问: 为什么不是直接从study
导入?
答: study
不包含 __init__.py
,并不是包
2. 相对导入
在同一级目录下,可以如此导入:
import mysql
不建议使用相对导入,因为相对导入,在不同的而目录下运行文件,会报错
无论是相对路径还是绝对路径,都是相对于运行目录来讲的