在 Python 中實現相對導入
在 Python 中使用分層目錄結構時,有必要從其他子目錄導入模組。使用“..”的傳統相對導入在某些情況下可能會導致錯誤。特別是,當透過將模組作為參數傳遞給解釋器來將其作為主模組執行時,相對導入會失敗。
根據 PEP 328,相對導入依賴模組的 name 屬性決定其在包層次結構中的位置。但是,當name 設定為'__main__' 時(就像將模組作為主模組運行時的情況一樣),相對導入將被解析為就像該模組是頂級模組一樣,無論其文件如何系統位置。
為了解決這個問題,Python 2.6 引入了引用相對於主模組的模組的功能。 PEP 366 中對此進行了描述。透過利用此功能,可以執行相對導入,而不會遇到「嘗試在非套件中進行相對導入」錯誤。
範例:
如下目錄結構:
要從 mod1 匯入mod2,您可以使用以下命令語法:
或者,如果您沒有將該模組作為主模組運行,則通常的相對導入語法將起作用:
以上是如何在 Python 中可靠地實現相對導入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!