import是使用python开发过程中最常用到的了。本文对import的使用做一个简单的总结。
import和from…import…的区别
- import引入的是一个包或模块,而from…import…可以导入包、模块、函数、类或者方法、变量等
- 调用的时候有区别,import需要使用模块名限定所调用类或方法;而from…import…直接调用即可
如果对所需要的内容很明确的话可以用from…import…即可
import时搜索路径
import时一般按照下面的顺序搜索所需的包或者模块:
- 当前目录
- PYTHONPATH目录
- 在 Python 安装路径的 lib 库中搜索
- 任何.pth文件的内容, 可以把⼀个.path⽂件放置在Python安装⽬录的顶层(例如C:\Python27)来扩展模块搜索路径
sys.path是模块的搜索路径,是一个列表,按照搜索的顺序保存。
想要添加搜索路径可以通过修改sys.path或者PYTHONPATH,或者添加.pth文件来实现。
绝对导入和相对导入
python2默认是相对路径导入,python3默认是绝对路径导入。
在没有明确指定包结构的情况下,Python 是根据 name 来决定一个模块在包中的结构的,如果是 main 则它本身是顶层模块,没有包结构,如果是A.B.C 结构,那么顶层模块是 A。基本上遵循这样的原则:
如果是绝对导入,一个模块只能导入自身的子模块或和它的顶层模块同级别的模块及其子模块
如果是相对导入,一个模块必须有包结构且只能导入它的顶层模块内部的模块
如果一个模块被直接运行,则它自己为顶层模块,不存在层次结构,所以找不到其他的相对路径。
绝对导入就是从sys.path中各个路径中按照顺
1181




被折叠的 条评论
为什么被折叠?



