Python代码书写准则
#代码缩进
使用4个空格来缩进代码。
#换行
类定义间空两行;方法定义或方法内部分层空一行。
#空格
不要在括号内空格;不要在逗号, 分号, 冒号前面加空格。不要在'='用于指示关键字参数或默认参数值时两侧加空格。
逗号, 分号, 冒号后面加空格(除在行尾)。二元操作符两边都加上一个空格, 如赋值(=), 比较(==,<, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not)。
#注释
复杂的算法建议在代码块前注释;对于不是一目了然的代码, 应在其行尾添加注释,注释应该至少离开代码2个空格。
#函数文档字符串
文档字符串应该包含函数做什么,以及输入和输出的详细描述。外部不可见函数无需文档字符串。若文档字符串仅有一行,可将符号与字符串置于同一行。首先是一行概述接着是一个空行,接着是文档字符串剩下的部分, 它应该与文档字符串的第一行的第一个引号对齐。函数文档字符串示例如下所示。
’’’功能概述.
扼要概述功能及实现方法。
Args:
参数:类型,含义
Return:
返回值类型及含义,None可忽略
Raise:
列出与接口相关的异常
’’’
#类文档字符串
若类包含公共属性(Attributes),那么文档中应该有一个属性(Attributes)段。并且应该遵守和函数参数相同的格式。
’’’功能概述.
扼要概述类及实现方法。
Attributes:
属性1:类型,含义
’’’
#字符串
同一个文件中, 保持使用字符串引号的一致性, 使用单引号'或者双引号"之一.
#导入格式
导入放在文件顶部, 位于模块注释和文档字符串之后,模块全局变量和常量之前. 导入应该按照从最通用到最不通用的顺序分组:
1. 标准库导入
2. 第三方库导入
3. 应用程序指定导入
#模块
将相关的类和顶级函数放在同一个模块里。
#命名约定
"内部(Internal)"表示仅模块内可用, 或是类内是保护或私有的.用单下划线(_)开头表示模块变量或函数是protected的(使用import* from时不会包含).用双下划线(__)开头的实例变量或方法表示类内私有.
模块名应该用小写加下划线的方式(如lower_with_under.py),类名使用大写字母开头的单词(如CapWords, 即Pascal风格)。命名的规则可整理如下表。
Type | Public | Internal |
Modules | lower_with_under | _lower_with_under |
Packages | lower_with_under |
|
Classes | CapWords | _CapWords |
Exceptions | CapWords |
|
Functions | lower_with_under() | _lower_with_under() |
Global/Class Constants | CAPS_WITH_UNDER | _CAPS_WITH_UNDER |
Global/Class Variables | lower_with_under | _lower_with_under |
Instance Variables | lower_with_under | _lower_with_under (protected) or __lower_with_under (private) |
Method Names | lower_with_under() | _lower_with_under() (protected) or __lower_with_under() (private) |
Method Parameters | lower_with_under |
|
Local Variables | lower_with_under |
|
#字符数限制
行不超过80个字符,除了导入语句与URL。
#括号使用
使用圆括号连接字符串,特别是长的字符串。不要在返回语句或条件语句中使用括号。
#枚举对齐
行连接时使用变量对齐。
#python风格
1、文件头:#!先用于帮助内核找到Python解释器, 但是在导入模块时,将会被忽略. 因此只有被直接执行的文件中才有必要加入#!.
2、推荐使用 "with"语句 以管理文件
3、大量字符串拼接,使用join函数。