簡體   English   中英

為什么在Python包中使用絕對導入而不是相對導入?

[英]Why use absolute instead of relative imports in a Python package?

我最近創建了一個Python包,並且在其中僅使用相對導入來訪問存儲在其他方法中的函數。

現在,在Numpy中,我看到很多大量使用絕對導入的文件 ,例如this file 它有很多語句,例如from numpy.core import overrides

我看不到使用相對導入的缺點。 他們為什么這樣做,而不是from ..core import overrides 絕對導入是否需要已安裝numpy?

Python中的絕對導入和相對導入

絕對進口

首選絕對導入,因為它們非常清楚和直接。 僅通過查看語句,就可以很容易地准確知道導入的資源在哪里。 此外,即使import語句的當前位置更改,絕對導入仍然有效。 實際上,PEP 8明確建議絕對導入。

但是,有時絕對導入可能會變得非常冗長,具體取決於目錄結構的復雜性。

相對進口

相對進口的一個明顯優勢是它們非常簡潔。

不幸的是,相對導入可能比較混亂,尤其是對於目錄結構可能會更改的共享項目。 相對導入也沒有絕對導入更易讀,而且很難說出導入資源的位置。

PEP8關於進口

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM