2017-10-06 62 views
0

我在PEP8中看到,接受的最佳導入方法是將所有導入放在模塊的頂部。我想知道如果這仍然是這種情況,如果你想在同一個模塊中有多個具有不同導入需求的子類。模塊內需要不同導入的多個類的最佳實踐?

具體來說,我正在製作一個通用的DataConnector類來讀取不同來源的數據,然後將這些數據放入熊貓數據框。我將擁有讀取不同數據源的子類。例如,一個子類將是,另一個子類是PGdatabaseConnector(DataConnector)。 Csv子類將需要導入csv,PGdatabase類將需要導入psycopg2。最好的做法仍然是將所有進口都保留在整個模塊的頂部?

(從邏輯上看,所有類都應該包含在一個模塊中,但我也可以看到將它們全部放在不同的模塊中,然後我不必擔心導入不會使用的庫。)

回答

1

有些情況下,您希望在其他地方放置導入(例如導入有副作用時需要按特定順序調用),但在這種情況下,所有導入都應該放在頂端.py源文件的內容。如果你覺得你的文件太混亂了,把每個類和相關的輸入分解成新的源文件。

+0

除非您希望應用程序在部分模塊可用的情況下仍能部分運行。我認爲OP希望能夠在同一個模塊中有條件地導入每個類(請記住,Python不是Java,您可以在同一個模塊中有多個類)。 – cowbert