首頁 >後端開發 >Python教學 >PEP 404 如何改變 Python 的導入語句?

PEP 404 如何改變 Python 的導入語句?

Barbara Streisand
Barbara Streisand原創
2024-12-06 11:36:18695瀏覽

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