以下内容部分翻译自PEP 8 。。。。


Guido(Python创始人)认为代码读得要比写得多,因此保持代码风格的一致性就很重要,可以有助于阅读。

但是也应该清晰地认识到有时候这个代码风格的指南并不适用,如果对于适用什么的风格存有疑问的,应该凭借自身的判断。看看其他的例子来决定怎样才是最好的。需要注意的是,不要生搬硬套地使用本指南,不要为了符合本指南而打破了向后兼容性。。。


代码布局:

缩进使用4个空格。

每行最多79个字符,文档和注释行不超过72个字符。可以通过括号和反斜线把长的一行分解成多个短行。最佳的断行位置是在双目运算符之后

使用两个空行分隔顶层的函数和类定义;类中的方法之间使用一个空行分隔。在函数之间使用空行来区分不同的逻辑区域。

源文件编码格式使用utf-8。

载入不同的模块最好分开来import。from可以一起导入。最好使用绝对导入。当导入类的时候,推荐用from module import class方式导入,如果遇到冲突可以用import modle导入,用module.class调用。

在双目运算符的两边加上空格。


注释:

注释应该是一个完整的多条句子,如果是词组或一条句子,首字母应大写。

注释尽量用英语写。

块注释,每行有一个‘#’和一个空格开头

慎用行内注释,即与代码位于同一行上的注释

给所有公共的模块,函数,方法,类写文档字符串。非公共的方法不需要写,但最好写一个注释用于描述这个方法做了什么,这个注释位于def行下。文档字符串最后的三个引号最好另起一行。

文档字符串:第一行是关于对象用途的简介,简短,不用陈述对象名或类型。第二行空出来。接下来的一段或多段描述对象的调用约定、边界效应等。第一行紧靠在引号后,缩进是由第一行之后的第一个非空行决定的。


命名规范:

这个在Python的库中有点乱,不同的库有不一样的命名方式

模块应使用短的全部小写的名称,可以带下划线

类名通常使用驼峰式,首字母大写。

异常用驼峰式

函数名用小写,单词之间可以用下划线分隔。方法的命名规范同函数

常量命名全部用大写并且用下划线分隔单词

永远考虑一个类的属性(包含方法)是公共的还是非公共的(在Python中没有那个属性是真正私有的),如果存有异议,使用非公共的的,因为非公共转公共的比较容易。公共的属性是那些你期望你的类中那些无关的client也可以使用的。非公共的属性是那些并不打算被第三方使用的。


尽量使用def而不是lambda,这样有助于traceback。。不过有些情况下,用lambda更好

试着使用raise Error(message),而不是raise Error,message