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中文網其他相關文章!