為什么看Python的代碼,有時候會在數據結構的最后一項末尾加上逗號。直接來看,這個逗號很多余。
根據PEP81的解釋:
Trailing commas are usually optional, except they are mandatory when making a tuple of one element
這里說末尾逗號不是必填的,除非你寫了一個只有一個元素的元祖。
所以這么多人寫的代碼風格都是多余的?
不是的。PEP8在上面一句的后來接着寫道,末尾的代碼可以幫助減少bug:
- 比如多人協作項目,一個列表的項可能由不同的人添加,你留着一個逗號可以幫助下一個修改的人減少出bug的幾率
- 因為兩個被引號包裹的字符串,會有自動合並功能。所以這也是一個潛在的bug
PEP8繼續提到,適合在結尾加上額外逗號的代碼類似下面這樣,末項以逗號結尾,再起一行加上閉合括號:
FILES = [
'setup.cfg',
'tox.ini',
]
initialize(FILES,
error=True,
)
但是,如果代碼是下面這種形式,末尾逗號和閉合括號是緊連的,那這個逗號就沒有必要了:
FILES = ['setup.cfg', 'tox.ini',]
initialize(FILES, error=True,)
