python编码规范

python编程通用规范:转自http://blog.sciencenet.cn/blog-252888-785311.html    和      http://blog.csdn.net/gzlaiyonghao/article/details/6601123

代码布局空行

用两行空行分割顶层函数和类的定义,类内方法的定义用单个空行分割。尽量少使用空行在一个函数内部来分隔逻辑区块。
空格

1. 避免在下面这些情况使用额外的空格。
赞成:spam(ham[1], {eggs: 2})反对:spam( ham[ 1 ], { eggs: 2 } )赞成:if x == 4: print x, y; x, y = y, x反对:if x == 4 : print x , y ; x , y = y , x赞成:spam(1)反对:spam (1)赞成:dict['key'] = list[index]反对:dict ['key'] = list [index]

2. 始终在这些二元运算符两边放置一个空格:赋值(=),比较(==、<、>、!=、<>、<=、>=、in、not in、is、is not),布尔运算(and、or、not)。始终保持二元运算符两边空格的一致。

3. 不要在用于指定关键字参数或默认参数值的'='号周围使用空格,例如: 示例:def complex(real, imag=0.0):return magic(r=real, i=imag)缩进

4.4个空格一个缩进层次,现在的IDE一般都支持缩进设置,设置成4个空格一个缩进。并且不要混用制表符和空格。对于新的项目,强烈推荐仅使用空格,注意空格和tab键不能混用。
5.行的最大长度:请将所有行限制在最大79字符,折叠长行的首选方法是使用Pyhon支持的圆括号,方括号和花括号内的行延续。如果需要,你可以在表达式周围增加一对额外的圆括号,但是有时使用反斜杠看起来更好。

6.导入:一条import语句import一个模块。 import语句应该放到文件的顶部,模块注释后面。 import导入模块,应该按照如下顺序放置: 1.标准库导入。 2.相关的第三方模块导入。 3.本地文件库模块导入。 并且你应该在每一组导入中间放入一个空行。

7.分枝和循环:尽量不要写成一行,即便是可以写成一行的语句。命名规范包

应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。
8.模块:与包的规范同。如mymodule。

9.类:总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。

10.函数:函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。 注意:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。

11.函数和方法参数:总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。

12.全局变量:对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。变量同方法。如color = WHITE,this_is_a_variable = 1


13.常量:常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

14.异常:以“Error”作为后缀。

15.缩写:命名应当尽量使用全拼写的单词,缩写的情况有如下两种: 1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。 2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。

16.前导后缀下划线:一个前导下划线:表示非公有。 一个后缀下划线:避免关键字冲突。 两个前导下划线:当命名一个类属性引起名称冲突时使用。 两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。 注意:关于下划线的使用存在一些争议。

17.注释格式注释:所有的Python脚本文件都应在文件头标上# -*- coding:utf-8 -*-。设置编辑器,默认保存为utf-8格式。块注释

注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中每行以'#'和一个空格开始。注释块上下方最好有一空行包围。
18.行内注释:一个行内注释是和语句在同一行的注释。行内注释应该谨慎适用。行内注释应该至少用两个空格和语句分开。它们应该以'#'和单个空格开始。

19.文档注释:文档字符串,又名"docstrings"。应为所有公共模块、类、函数和方法编写文档字符串。文档字符串对非公开的方法不是必要的,但你应该有一个描述这个方法做什么的注释,这个注释应该在"def"这行后。一定注意,多行文档字符串结尾的"""应该单独成行。对单行的文档字符串,结尾的"""在同一行也可以。
原文地址:https://www.cnblogs.com/msnsj/p/4242616.html