3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
將停止寫(xiě)作課PYCON談話是不完全對(duì)這個(gè)問(wèn)題,但包括我的感覺(jué)是相關(guān)的經(jīng)驗(yàn)教訓(xùn)在這里:基本上,這個(gè)想法是,類是用于創(chuàng)建對(duì)象。所有的屬性,實(shí)例方法和類方法都應(yīng)進(jìn)一步促進(jìn)創(chuàng)建對(duì)象或使對(duì)象正常工作的目標(biāo)。類不是用于代碼組織的(在這種理論下),這就是模塊的用途。
這是一個(gè)很自以為是的策略,并非所有人都同意。但是,如果您在這種情況下考慮示例,則很明顯,函數(shù)不屬于類的原因是,即使函數(shù)被類使用,它們實(shí)際上也不會(huì)對(duì)任何對(duì)象進(jìn)行操作或進(jìn)一步創(chuàng)建直接對(duì)任何對(duì)象。它們只是實(shí)用程序函數(shù),不受任何特定類的約束,理論上可以在庫(kù)中的其他地方使用。
那么,為什么或?yàn)槭裁床话阉鼈兎旁谡n堂上呢?歸結(jié)為您是否認(rèn)為應(yīng)該將類用于代碼組織。在這種情況下,作者顯然接受了這樣的想法,即模塊是用于代碼組織的,而不是類。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
它們比成員函數(shù)更易于導(dǎo)入且名稱更短
即使將它們放在類中,無(wú)論如何它們?nèi)钥赡苁穷惙椒?靜態(tài)方法。
Pythonic代碼使用鴨子類型。一個(gè)方法將暗示它只能與該類一起使用,而實(shí)際上,代碼可能比該類更通用。
個(gè)人喜好。有些人喜歡將“域模型”和“業(yè)務(wù)邏輯”分開(kāi)。
最后,對(duì)于此特定程序,以任何一種方式進(jìn)行操作實(shí)際上都沒(méi)有好處也沒(méi)有缺點(diǎn)。
添加回答
舉報(bào)