2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
我肯定希望真實(shí)的例子更加復(fù)雜:)
我會(huì)說去嵌套或輔助功能。我個(gè)人會(huì)去使用輔助函數(shù),但這只是我的意見。當(dāng)然,這是我可以告訴您的描述。實(shí)際代碼將為建議提供更好的依據(jù),而不僅僅是一個(gè)隨機(jī)示例。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
我個(gè)人認(rèn)為選項(xiàng)1或2是最干凈的。如您所提到的,選項(xiàng)3是非常特定于上下文的,可以定義為模塊功能。
要在選項(xiàng)1或2之間進(jìn)行選擇,您需要確定對(duì)單元代碼進(jìn)行單元測試的重要性??紤]到您已經(jīng)基本回答了單元測試的重要性以及是否可以從foo()進(jìn)行單元測試的問題,
而且我真的不想在foo()中測試它
那么您將需要使用選項(xiàng)2的一些變體。理想情況下,私有方法將是您的理想之選,但是由于python不支持該方法,因此至少應(yīng)考慮為其命名。__plus_two()
這是有關(guān)Python中領(lǐng)先的雙下劃線的相關(guān)問題:對(duì)象名稱前的單下劃線和雙下劃線是什么意思?這是另一個(gè)與私有方法有關(guān)的問題:為什么Python的“私有”方法實(shí)際上不是私有的?
添加回答
舉報(bào)