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/