在python中,您通常使用PEP 8-Python代码样式指南作为您的编码标准/准则吗?您还有其他更喜欢的正式标准吗?
在python中,您通常使用PEP 8-Python代码样式指南作为您的编码标准/准则吗?您还有其他更喜欢的正式标准吗?
Answers:
我遵循Rob Knight 撰写的Python习语和效率指南。我认为它们与PEP 8完全相同,但更多是基于实例的综合。
如果您使用的是wxPython,则可能还需要查看Chris Barker 撰写的wxPython代码的样式指南。
我非常坚持PEP-8。
我有三件事要更改为PEP-8。
避免在括号,方括号或大括号内立即使用多余的空格。
建议: spam(ham[1], {eggs: 2})
无论如何,我这样做: spam( ham[ 1 ], { eggs: 2 } )
为什么?30多年的根深蒂固的习惯使()与函数名或C语言中的语句关键字不符。从70年代的Fortran IV开始。
在算术运算符周围使用空格:
建议: x = x * 2 - 1
无论如何,我这样做: x= x * 2 - 1
为什么?Gries的《编程科学》建议这是强调赋值与状态被更改的变量之间的联系的一种方式。
对于多重分配或扩充分配,它不太适用,因为我使用了大量空格。
对于函数名称,方法名称和实例变量名称
建议:小写,单词之间用下划线分隔,以提高可读性。
我还是这样做:camelCase
为什么?从80年代的Pascal开始,有20多年根深蒂固的camelCase习惯。
PEP 8很好,我唯一希望它更难解决的是Tabs-vs-Spaces的神圣战争。
基本上,如果您要使用python启动项目,则需要选择“制表符”或“空格”,然后立即将所有违规者开枪。
查阅Anthony Baxter的有关有效Python编程的演示文稿(来自OSON 2005)。
摘录:
# dict's setdefault method turns this:
if key in dictobj:
dictobj[key].append(val)
else:
dictobj[key] = [val]
# into this:
dictobj.setdefault(key,[]).append(val)