在 python 中导入带点的模块
Importing modules with dot in python
我已经阅读 https://www.python.org/dev/peps/pep-0008/#imports 但我没有找到明确的确认。
假设包的结构如下:
|-package1
|--|__init__.py
│--|module.py
我想在 __init__.py
中导入 module.py
。
我想知道之间是否有任何语义差异:
from . import module
和
from .module import *
假设我想在每次加载 package
时导入 module.py
中的所有内容。
这两者之间的最大区别在于第一种情况将名称保留在 module
中,第二种情况将所有名称从 module
导入当前名称空间。
假设module.py
定义了一个函数foo
.
from . import module
module.foo()
对比
from .module import *
foo()
但就导入系统加载 module/package 的方式而言,没有任何变化。两个 import 语句都指向完全相同的模块,并且只指向该模块。您如何按名称访问导入的模块受导入语句的影响,如上所示。
此外,PEP8 只是一个风格指南。 PEP328 将告诉您更多有关相对进口的信息
我已经阅读 https://www.python.org/dev/peps/pep-0008/#imports 但我没有找到明确的确认。
假设包的结构如下:
|-package1
|--|__init__.py
│--|module.py
我想在 __init__.py
中导入 module.py
。
我想知道之间是否有任何语义差异:
from . import module
和
from .module import *
假设我想在每次加载 package
时导入 module.py
中的所有内容。
这两者之间的最大区别在于第一种情况将名称保留在 module
中,第二种情况将所有名称从 module
导入当前名称空间。
假设module.py
定义了一个函数foo
.
from . import module
module.foo()
对比
from .module import *
foo()
但就导入系统加载 module/package 的方式而言,没有任何变化。两个 import 语句都指向完全相同的模块,并且只指向该模块。您如何按名称访问导入的模块受导入语句的影响,如上所示。
此外,PEP8 只是一个风格指南。 PEP328 将告诉您更多有关相对进口的信息