Python编码标准/最佳实践

时间:2008-12-10 14:10:07

标签: python coding-style

在python中,您通常使用PEP 8 -- Style Guide for Python Code作为编码标准/指南吗?您还有其他正式标准吗?

8 个答案:

答案 0 :(得分:148)

  

“在python中,您通常使用PEP 8 - Python Code样式指南作为您的编码标准/指南吗?您还有其他正式标准吗?”

正如你所提到的那样,关注主要文本PEP 8,文档字符串约定关注PEP 257

与Python样式指南一起,我建议您参考以下内容:

  1. Code Like a Pythonista: Idiomatic Python
  2. Common mistakes and Warts
  3. How not to write Python code
  4. Python gotcha

答案 1 :(得分:14)

我遵循Rob Knight的Python Idioms and Efficiency指南。我认为它们与PEP 8完全相同,但更具合成性并基于实例。

如果您正在使用wxPython,您可能还想查看Chris Barker的Style Guide for wxPython code

答案 2 :(得分:8)

我非常认真地坚持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开始。

答案 3 :(得分:5)

PEP 8很好,我唯一希望它变得更难的是Tabs-vs-Spaces圣战。

基本上如果你在python中启动一个项目,你需要选择Tabs或Spaces然后在视线上拍摄所有违规者。

答案 4 :(得分:5)

要添加到bhadra's list惯用指南:

结帐Anthony Baxter关于Effective Python Programming的演讲(来自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)

答案 5 :(得分:4)

我非常严格地遵循它。 PEP-8之前唯一的神是现有的代码库。

答案 6 :(得分:2)

是的,我尽量密切关注它。

我没有遵循任何其他编码标准。

答案 7 :(得分:1)

我遵循PEP8,它是一种很棒的编码风格。