朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow
什么叫做相对导入?
一句话!导入同一个包中的模块就叫做相对导入。例如你要导入其它包中的模块,那就不是相对导入,而是绝对导入。
如何用代码来实现相对导入呢?
很简单!在from导入语句中加一个点号就可以了。
from .import spam # Relative to this package
上面就是一个相对导入语句(注意看,import单词前面有一个点号)。代码意思就是从当前代码文件所在的包中导入一个名为spam的模块。注意!注意!注意!在Python 3.0版本后,它只搜索当前的包,如果当前包中没有名为spam的模块,导入就失败了。而在Python2.6中,会先执行相对导入,如果找不到,再继续执行绝对导入,也就是去其它地方继续找。如果没有那个小点号,那么就不是相对导入,那么就不会搜索当前包。
from .spam import name
上面代码的意思是,从当前包中找到一个名为spam的模块,然后导入里面名为name的变量。
为什么要使用相对导入?
一句话!解决导入时的模糊性。这一句话有同学可能理解不了,下面我用很多句话来帮你深入深入又深入滴理解!
假射有一个包,名为mypkg,里面有如下文件
mypkg\
__init__.py
main.py