Python 3 中导入语句的更改:了解相对导入和星号导入
在 Python 3 中,对导入语句进行了重大更改提高清晰度并避免潜在的歧义。本文深入研究了这些更改并解释了它们对程序员的影响。
相对导入
相对导入允许您导入相对于当前模块位置的模块。在 Python 2 中,包内隐式允许相对导入。但是,在 Python 3 中,此功能已被弃用。现在支持绝对导入和显式相对导入。
绝对导入指定模块的完整路径,例如:
import mypackage.mymodule
显式相对导入使用 .和 .. 语法指定相对路径,如:
from .mymodule import MyModule
此路径表示 mymodule 与当前模块在同一目录
Star Imports
星型导入(从模块导入所有名称)以前在 Python 2 的模块级别和函数内是允许的。但是,在 Python 中3,星号导入仅在模块级代码中允许。
例如,在 Python 2 中,您可以在函数中导入整个数学模块:
def sin_degrees(x): from math import * return sin(degrees(x))
在 Python 3 中,此不再有效。相反,您可以导入所需的特定函数:
def sin_degrees(x): from math import sin, degrees return sin(degrees(x))
或者,您可以在模块级别导入整个模块:
from math import * def sin_degrees(x): return sin(degrees(x))
这些更改旨在提高清晰度,减少歧义,并在 Python 3 及更高版本中强制执行模块和包管理的最佳实践。
以上是Python 3 的导入语句有关相对导入和星型导入的主要变化是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!