Koz*_*huk 116 python coding-style
在python中你通常使用PEP 8 - Python Code样式指南作为编码标准/指南吗?您还有其他正式标准吗?
Map*_*pad 14
我遵循Rob Knight 的Python Idioms and Efficiency准则.我认为它们与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
为什么?格里斯的"编程科学"认为这是一种强调分配与状态变化的变量之间联系的方法.
它不适用于多重赋值或增强赋值,因为我使用了大量空格.
对于函数名称,方法名称和实例变量名称
建议:小写,必要时用下划线分隔,以提高可读性.
无论如何我这样做:camelCase
为什么?20多年来根深蒂固的camelCase习惯,从80年代的Pascal开始.
PEP 8很好,我唯一希望它变得更难的是Tabs-vs-Spaces圣战.
基本上如果你在python中启动一个项目,你需要选择Tabs或Spaces然后在视线上拍摄所有违规者.
查看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)
Run Code Online (Sandbox Code Playgroud)