1. 模块、包、库
-
模块(Module):一个python文件(.py文件),多个功能相近的函数或类放在同一个模块中
-
包(Package):一个python文件夹,将功能相近的模块放在同一个文件夹下,目的是避免模块名冲突
如果目录下包含了__init__.py文件,Python解释器将该目录当作为一个Package。__init.py文件可以为空,也可以导入Package内需要被import的函数和类,类似于向外暴露接口 -
库(Library):为了实现相关功能的Package和Module的集合,更多是一个通俗的说法
2. import 的两种方式
import … (as …) | from … import … |
---|---|
导入Module中所有内容 占用内存较多 | 想用什么导入什么 占用内存较少 |
可以使用as起别名来简写导入的Module、Function或Class | 不能使用as简写,小心名字冲突 |
保留Module原有的命名空间 | 将import Module的函数或类导入当当前的命名空间中 |
在内存中直接加载该模块的全部属性, 多个程序import同一个模块时共用,程序之间会相互影响 | 在内存中创建模块的副本, 每个import的程序都有一个副本,不会相互影响 |
3. import 顺序
- 判断Module是否为build-in
- 在sys.path的list中寻找,sys.path依次包括以下部分:
- 当前python文件的目录
- PYTHONPATH环境变量
- 标准库目录
- .pth文件内容
- 第三方库,一般在site-package目录下
4.Advanced
深入学习Python import机制
Python 3.x | 史上最详解的 导入(import)
参考资料:
import… 与 from…import…
import… 与 from…import…的区别的小例子
Python中模块、包和库
python导入的模块搜索顺序详解