首頁 >後端開發 >Python教學 >Python 3 中的導入語句有何變化?

Python 3 中的導入語句有何變化?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-02 07:26:10213瀏覽

How Have Import Statements Changed in Python 3?

Python 3 中導入語句的變化

在Python 3 中,導入機制進行了重大修改,引入了相對導入和導入的新規則。限制明星進口。

什麼是親屬導入?

相對導入是指相對於檔案系統中目前模組位置的模組或套件的導入語句。例如,考慮以下檔案結構:

mypkg/
  __init__.py
  module1.py
  module2.py

在 module2.py 中,語句 from module1 import Foo 將是相對導入,因為它從同級模組 module1 導入 Foo 類別。

明確相對導入

Python 3 需要明確相對導入,它清楚地指定了導入的模組。導入聲明中的前導句點(“.”)表示相對導入。例如, from .module1 import Foo 從相對模組 module1 導入 Foo。

刪除隱式相對導入

在 Python 2 中,隱式相對導入允許模組導入時未明確指定其位置。但是,這種行為在 Python 3 中已被棄用。例如,Python 2 中的語句 import module1 會從目前目錄隱含導入 module1.py。但是,在 Python 3 中,此語句會引發錯誤,需要使用 from 明確匯入。 import module1.

星號導入

星號導入(例如 from x import *)僅在 Python 3 的模組級程式碼中允許。這意味著模組不能使用導入其他模組時使用星號導入。

使用相對值的範例導入

考慮以下Python 2 程式碼:

# module1.py
class MyClass:
    def __init__(self):
        print("Hello from MyClass")
# module2.py
from module1 import MyClass
在Python 3 中,module2.必須重寫為:

# module2.py
from .module1 import MyClass
這種明確相對導入可確保從相對於 module2 的正確位置匯入 MyClass。

以上是Python 3 中的導入語句有何變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn