Python - 来自 .进口

标签 python import relative-path

我第一次接触图书馆,我注意到解决图书馆内部导入问题的最简单方法是使用如下结构:

from . import x
from ..some_module import y

这让我觉得“不好”。也许这只是我不记得经常看到它的事实,尽管公平地说我还没有在大量图书馆中闲逛。

只是想看看这是否被认为是好的做法,如果不是,更好的方法是什么?

最佳答案

一切都有 PEP。

引自 PEP8: Imports

Explicit relative imports are an acceptable alternative to absolute imports, especially when dealing with complex package layouts where using absolute imports would be unnecessarily verbose:

Guido's decisionPEP328 导入:多行和绝对/相对

从 PEP328 复制意大利面

这是一个示例包布局:

package/
    __init__.py
    subpackage1/
        __init__.py
        moduleX.py
        moduleY.py
    subpackage2/
        __init__.py
        moduleZ.py
    moduleA.py

假设当前文件是 moduleX.pysubpackage1/__init__.py ,以下都是新语法的正确用法:

from .moduleY import spam
from .moduleY import spam as ham
from . import moduleY
from ..subpackage1 import moduleY
from ..subpackage2.moduleZ import eggs
from ..moduleA import foo
from ...package import bar
from ...sys import path

关于Python - 来自 .进口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29283139/

相关文章:

python - 使用列表理解从元组列表中向每个元组元素添加一个

'import as' 与变量赋值之间的 Python 区别

perl - 如何使用 "use strict"导入常量,避免 "Can' t 使用 bareword ... 作为 ARRAY ref"

python - 使用多处理锁定Python写入文件时丢失行

python - 如何使模型对象在用户首次提交后不可编辑

python - 如何理解 Python 中的 sys.stdout 和 sys.stderr

svn - 如何修复 SVN 导入行结尾错误?

windows - 如何在 matlab 中访问 windows 相对路径(例如 %userprofile%)?

go - 如何在 golang 中使用 LDFLAGS 的相对路径

javascript - Ajax中的相对路径在不同环境下工作方式不同