首页 >后端开发 >Python教程 >PEP 404 如何改变 Python 的导入语句?

PEP 404 如何改变 Python 的导入语句?

Barbara Streisand
Barbara Streisand原创
2024-12-06 11:36:18702浏览

How Did PEP 404 Change Python's Import Statements?

PEP-404 对 Python 导入语句的影响

Python 增强提案 (PEP) 404 对 Python 3 中的导入语句引入了重大更改,增强模块导入的清晰度和组织性。

什么是相对导入吗?

相对导入是指从相对于当前模块或包的位置导入模块。在 Python 2 中,允许隐式相对导入,但这在 Python 3 中受到限制。

相对导入的更改

PEP-404 强制执行显式相对导入。现在必须使用前导 . (点)或 ..(双点)指定相对于当前模块目录的路径。例如:

from .mymodule import MyFunction  # Import from within the current package
from ..otherpackage import OtherClass  # Import from one level up in the directory structure

星型导入的限制

星型导入(从包中导入所有子模块和属性)现在仅允许在模块级别代码中使用。以前,函数和类定义中允许星号导入,但为了防止命名空间污染和意外行为,已禁止这样做。

示例:

Python 2 代码:

# Function-level star import
def my_function():
    from mymodule import *
    do_something_with(MyAttribute)

# Class-level star import
class MyClass:
    def __init__(self):
        from otherpackage import *
        self.other_variable = OtherVariable

Python 3 代码:

# Module-level star import
import mymodule
do_something_with(mymodule.MyAttribute)

# Explicit import within function
def my_function():
    from mymodule import MyAttribute
    do_something_with(MyAttribute)

# Explicit import within class
class MyClass:
    def __init__(self):
        from otherpackage import OtherVariable
        self.other_variable = OtherVariable

通过强制执行显式导入和限制星号导入,Python 3 旨在提高导入清晰度,减少命名空间冲突,并促进更加结构化和可维护的代码库。

以上是PEP 404 如何改变 Python 的导入语句?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn