我從這本書(從新手到專業的Python入門)讀到:「通常認爲重複代碼是一件壞事」(我不是母語,所以我不是確保它是如何開始寫),並說:究竟是什麼'代碼重複'
#===11-7===
file = open(PATH)
while True:
char = file.read(1)
if not char:
break
print('Processing:', char)
file.close()
優於:
#===11-6===
file = open(PATH)
char = file.read(1)
while char:
print('Processing:', char)
char = file.read(1)
file.close()
因爲11-7避免重複的代碼。所以我在這裏問:什麼是代碼重複?而且它很糟糕?
僅僅判斷表格11-6我沒有看到某種...的缺點,說實話,如果我沒有看這本書,我會選擇11-6這樣的代碼。謝謝〜
基本上,沒有理由多次寫*相同的代碼行*,如果你不必。 –
如果您決定讀取* 2 *個字節而不是一個,並且只在兩個'.read()'調用之一中進行更改,則可以巧妙地引入錯誤。在練習中一直都會發生。 – deceze
這個答案總結了IMO的一個關鍵點:「應該使用DRY來避免兩個代碼在概念上做一些相同的工作,所以無論何時在一個地方更改代碼,都必須更改其他代碼如果相同的邏輯在兩個不同的地方,那麼你必須始終記住在兩個地方都改變邏輯,這可能是相當容易出錯的。「http://stackoverflow.com/a/17790368/6260170 –