2011-10-20 112 views
7

我正在構建一個項目,並遇到以下問題:Python:維護模塊中的代碼

我已經實現了幾個子類,每個子類都有大約250行代碼。語義上講,它們應該一起去同一個模塊和我想與

from mymodule import SubclassA, SubclassB 

但後來我的模塊文件有上千行,這使得維護其代碼非常討厭的導入。現在我有一個單獨的文件中的每個類,使其易於維護,但我必須這樣使用它:

from subclassa import SubclassA 
from subclassb import SubclassB 

這樣做沒有任何意義,這真的很可怕。

是否有任何優雅的解決方案?如果不是,上述哪一種更好的解決方案?

+1

也許你需要一個包:http://docs.python.org/tutorial/modules.html(6.4) – danihp

+0

「千行,這使得mantaining其代碼非常討厭」?真?爲什麼?你能更具體地說明你的實際問題是什麼嗎? –

回答

5

您可以始終把from subclassa ...進口到你的包的__init__.py正如你在第二個清單顯示。然後,他們將直接從您的包裹中獲得,就像您在第一份清單中所寫的那樣。

+0

非常感謝!這工作。我終於在'__init __。py'文件中創建了一個包含import的包。 –

1

我傾向於第二種方案,用單獨的文件。進口並不是那麼糟糕。

如果他們打擾你這麼多,你可以封裝他們另一個文件中,然後從該文件中導入所有的類二手。因此,您的主要導入看起來像第一個解決方案,但mymodule文件的唯一內容將是第二個解決方案中的代碼。

0

你可以從他們各自的文件中導入mymodule模塊中的兩個類:

import SubclassA, SubclassB 

,然後其他項目中,你可以簡單地從該模塊導入這些類:

from mymodule import SubclassA, SubclassB 

讓我知道如果這是你正在尋找的。