python - from .. import 和 from .. 之间的区别进口

标签 python python-3.x

Python 中的这些导入有什么区别?什么时候会使用它们?多少个点“.”我们可以使用吗?

from something import this
from .. import this
from . import this

最佳答案

说明

假设我们有以下结构:

| my_package
| __init__.py
|___ inner_package
    | __init__.py
    | foo.py
    | bar.py
    |___ even_more_inner_package
        | inner_foo.py
        |___ __init__.py
| main.py

第一个 from Something import this 从顶部应用程序包导入,这意味着如果我们想从文件中任何地方的 inner_package 导入某些内容,我们必须这样做像这样:

from my_package.inner_package import foo

第二个和第三个导入语句也称为 relative imports ,其工作方式与文件夹完全相同:

第二条语句from .. import some的意思是“从上层包中,导入一些东西”。想象一下,我们在inner_foo.py里面,它在my_package.inner_package.even_more_inner_package里面,我们可以执行以下操作来导入bar.py:

# This statement goes one package up and looks for bar
from .. import bar

最终的来自 . import some 语句的意思是“从当前包中导入一些东西”。如果我们从 bar.py 编写代码并希望导入 foo.py,我们可以使用:

from . import foo

注意

您不能在顶级包上使用相对导入from ..。在此示例中,在 main.py 内执行 from .. import my_package 将引发 ImportError

关于python - from .. import 和 from .. 之间的区别进口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61255269/

相关文章:

linux - 我可以从 python 运行交互式 bash 脚本吗?

Python 从 url 逐行下载大型 csv 文件,只有 10 个条目

python-3.x - 如何在日志中查看 MySqlHook 结果

python - 让一个数字遍历数组中的 3 个数字

python - 将两个字典中的元素放入列表中

python-3.x - Microsoft Fabric笔记本中的Python导入错误

python - 如何更改具有特定 id 的 QMenuBar 的子 css 样式表?

python - 如何在 Pandas DataFrame 的多个列中进行一次性编码以供以后与 Scikit-Learn 一起使用

python - 在 Python 中重新加载依赖模块

python的负数阈值,最低的非无穷大负数?