为什么看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,)