前言:
现在咱们对“pythonimport上层”大约比较看重,兄弟们都需要剖析一些“pythonimport上层”的相关知识。那么小编在网摘上搜集了一些有关“pythonimport上层””的相关资讯,希望大家能喜欢,大家快快来学习一下吧!【导读】使用import导入额外代码经常报错?看完文章完美解决。
▍目录
python引用外部代码的方式绝对导入和相对导入结尾
▍python引用代码的方式
Python中引入代码包的方式包括绝对导入和相对导入两种方式。这种导入方式可以使用import或from...import语句来实现。在Python中,import语句会按照一定的搜索路径来查找要导入的模块。搜索路径是一个包含了多个目录的列表,可以通过sys.path变量来查看。
具体的搜索路径如下:
当前目录:即执行脚本所在的目录PYTHONPATH环境变量包含的目录标准库安装目录下的site-packages子目录标准库安装目录下的其他子目录
程序会按照这个顺序依次搜索要导入的模块,如果找到了就直接导入,否则会抛出ImportError异常。
▍绝对导入和相对导入
在了解 绝对导入和相对导入之前,必须了解一个概念,什么是python的主模块?
在 Python 中,主模块指的是直接被 Python 解释器执行的模块。它被用来指定程序入口,也就是程序从哪里开始执行。当一个 Python 脚本被直接执行时,该脚本就成为了主模块。当我们在一个Python脚本中直接运行该脚本时,__name__变量的值为"__main__";而当我们在其他Python脚本中导入该模块时,__name__变量的值就是该模块的名称
哪些情况必须使用绝对导入?
Python的主模块在引用其它代码时都必须使用绝对导入。主模块的同级模块引用其它文件的时候也必须使用绝对导入。
哪些情况可以使用相对导入?
相对导入只能在包中使用,并且必须显式地指定要导入的模块名称。相对导入只能导入相对主模块下的次级目录结构下的模块代码。
相对导入语法:
.package:代表导入同级模块
..package:代表导入上层模块
...package:代表导入上上层模块
举个例子,假设我们的目录结构如下所示:
当main.py作为主模块被执行时,main.py引用fileA代码的方式有:
绝对导入:
from packA import fileA
import packA.fileA
相对导入:
在主模块中不可以使用相对导入的方式
当main.py作为主模块被执行时,fileB1引用fileA中代码的方式有。
绝对导入:
from packB import fileA
import packB.fileA
相对导入:
from .. import fileA
import ..fileA
当main.py作为主模块执行时,fileB1引入fileB2中代码的方式有。
绝对导入:
from packB import fileB2
相对导入:
from . import fileB2
import .fileB2
当fileB1.py作为主模块执行时,fileB1引入fileA中代码的方式有:
绝对导入:
from packA import fileA
相对导入:
在主模块中不可以使用相对导入的方式
▍结尾
关注慕课python,实时掌握精彩文章推送,文章中有任何问题欢迎评论区讨论交流。
标签: #pythonimport上层