我想从位于当前目录上方的目录中的文件中的类继承。
是否可以相对导入该文件?
from ..subpkg2 import mod
根据 Python 文档:在包层次结构中,使用两个点,正如import 语句文档所说:
在指定要导入的模块时,您不必指定模块的绝对名称。当一个模块或包包含在另一个包中时,可以在同一个顶级包中进行相对导入,而不必提及包名。通过在指定的模块或包中使用前导点,from您可以指定向上遍历当前包层次结构的高度,而无需指定确切的名称。一个前导点表示进行导入的模块所在的当前包。 两个点表示上一层封装 。三个点是两个级别,等等。因此,如果您from . import mod从包中的模块执行,pkg那么您最终将导入pkg.mod. 如果您from ..subpkg2 import mod从内部执行,pkg.subpkg1您将导入pkg.subpkg2.mod. 相对导入的规范包含在PEP 328中。
from
from . import mod
pkg
pkg.mod
pkg.subpkg1
pkg.subpkg2.mod
PEP 328处理绝对/相对导入。