Python编码标准/最佳实践

Koz*_*huk 116 python coding-style

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

bha*_*dra 148

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

正如您所提到的那样,您可以按照PEP 8获取正文,并使用PEP 257获取文档字符串约定

与Python Style Guides一起,我建议您参考以下内容:

  1. 代码像Pythonista:惯用语Python
  2. 常见的错误和疣
  3. 如何不编写Python代码
  4. Python陷阱


Map*_*pad 14

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

如果您使用的是wxPython,您可能还需要查看Chris Barker的wxPython代码样式指南.


S.L*_*ott 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开始.


Rya*_*yan 5

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

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

  • 标签或空格?从PEP8:空格是首选的缩进方法.选项卡应仅用于与已使用选项卡缩进的代码保持一致. (4认同)

Rya*_*Cox 5

要添加到bhadra的 惯用指南列表中:

查看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)