2009-09-05 52 views
2

我有一個叫做Path的類,它定義了大約10種方法,在專用模塊Path.py中。最近,我需要爲Path編寫5個更多的方法,但是這些新方法非常模糊和技術性,90%的時間都不相關。Python中的代碼組織:哪裏是放置不明方法的好地方?

哪裏會是一個很好的地方放他們,所以他們的語境清晰?當然,我可以將它們與類定義放在一起,但我不喜歡那樣,因爲我喜歡將重要的東西與晦澀的東西分開。

目前,我有這些方法作爲一個獨立的模塊中定義的,只是爲了保持獨立的功能,但它會更好,讓他們成爲綁定方法。 (目前,他們採取Path實例作爲一個明確的參數。)

有沒有人有一個建議?

+0

你能舉一個這樣一個晦澀的方法的例子嗎? – 2009-09-05 15:31:06

+0

'get_item_with_end_node',它從路徑中獲取一個項目,假定該路徑具有所謂的「結束節點」。在我的項目中,絕大多數路徑沒有末端節點。 – 2009-09-05 15:33:22

回答

2

如果你是熱衷於把在不同的源文件,這些方法在任何成本,並且熱衷於讓他們在不惜任何代價的方法,你可以通過使用不同的源文件中定義的混合類實現這兩個目標,讓您的Path類導入該方法並從該mixin中乘以繼承。所以,從技術上講,這是非常可行的。然而,我不會推薦這樣的行動:它只值得使用「大槍」(例如多重繼承)來服務重要目標(例如重用和去除重複),並且以這種方式分離方法並不是一個特別重要的目標。

如果這些「不起眼方法」沒有發揮作用,你就不會實現它們,所以他們必須有一定的重要性,畢竟,所以我只是在文檔和評論中澄清他們的用途,或許明確提到他們很少需要,並且將其留在那裏。

0

我只想用下劃線_前面加上的名字,以示讀者不要理會他們。 它通常與其他語言的私人成員一樣。

4

如果該方法與路徑相關 - 無論多麼模糊 - 我認爲它應該存在於類本身。

如果您有多個有路徑相關功能的地方,則會導致出現問題。例如,如果您想檢查某些功能是否已經存在,那麼新程序員如何知道檢查其他不太明顯的地方?

我認爲一個好的做法可能是按重要性排序函數。正如你可能聽說過的,有些人建議首先把公共的班級成員,以及後來的私人/受保護的成員。你可以考慮把你的班級中的常用方法比晦澀的方法更高。

+0

+1爲公衆優先。 – fengshaun 2009-09-05 22:20:33

0

,把它們放進Path類,並記錄他們是「晦澀」要麼意見或文檔字符串。如果你願意的話,最後把它們分開。

0

哦,等等,我想到了一些東西 - 我可以在Path.py模塊中定義它們,每個模糊的方法將是一個單線程,它將從當前存在的單獨模塊調用該函數。有了這個折衷方案,不明確的方法將在文件末尾包含10行,而不是其大小的50%。

0

我建議讓它們可以從Path類的一個屬性訪問,稱爲「Utilities」。例如:Path.Utilities.RazzleDazzle。這將有助於自動完成工具和一般維護。

相關問題