python编码规范
文件及目录规范
-
文件保存为 utf-8 格式。
-
程序首行必须为编码声明:
# -*- coding:utf-8 -*-
-
文件名全部小写。
代码风格
空格
-
设置用空格符替换TAB符。
-
代码缩进为4个空格符。
-
仅在运算符前后(如+,-,=,==)各加一个空格,不要在用于指定关键字参数或默认参数值的'='号周围使用空格,其他语句和表达式中都不要加空格。
分行
-
程序头部声明和import之间、import和程序之间用一个空行分隔。
-
类定义之间以及程序与
if __name__ =="__main__":
空两行。类定义行与成员函数之间以及函数定义之间空一行。 -
每个语句独立一行,不要使用;在一行内放置多条语句。
-
每行字符数控制在72以内,如果超长可以使用反斜杠()折行。
-
如果语句包含()、[]、{},可使用括号内行延续,换行后加两个缩进以便于阅读。
-
换行位置应在元素分隔符或操作符前。
代码约定
- import紧跟在编码声明和程序功能注释之后, import顺序应该是先系统标准包,其次第三方包,最后是自定义包。
命名规则
命名方法
-
Lowercase(小写)
-
lower_case_with_underscores(有下划线的小写)
-
UPPERCASE(大写)
-
UPPER_CASE_WITH_UNDERSCORES(有下划线的大写)
-
CapitalizedWords (或 CapWords,CamelCase这样命名是因为可从字母的大小写分出单词。这有时也被当作StudlyCaps。)
-
mixedCase (与CapitalizedWords的不同在于首字母小写!)
命名约定
-
单字符名称仅用于计数器和迭代器。
-
双下划线开头并结尾的名称为系统保留命名法,编程中禁止使用。
-
包名和模块名:不含下划线全小写。
-
类名:使用CapWords约定。内部使用的类外加单下划线前缀。
-
函数名和变量名:使用mixedCase约定。
-
常量:使用有下划线的大写约定。
-
protected变量或函数:在mixedCase约定的基础上加单下划线前缀。
-
private变量或函数:在mixedCase约定的基础上加双下划线前缀。
-
如果命名与系统名冲突,则加单下划线后缀。
应避免的命名
-
单字符名称, 除了计数器和迭代器。
-
包/模块名中的连字符(-)。
-
双下划线开头并结尾的名称。
注释规范
注释原则
-
不要描述代码本身。
-
功能修改后注释一定要第一时间修改。
文档字符串
文档字符串是python特有的注释形式。通常做为程序文件、包、模块、类、函数的注释方式,可以通过对象的__doc__成员被自动提取, 并且被pydoc所用.
程序文件、包、模块注释
位置在import之前,上下各空两行。
'''<程序名>
<功能说明>
version:<版本号>
author:<开发者姓名>
createdate:
modifydate:
'''
函数注释
位置紧跟函数定义之后。
'''<功能说明>
args:<参数名>:<说明>
... ...
returns:<返回值说明>
raises:<可能引起的异常说明>
'''
类注释
在函数注释的基础上加入attributes(属性)
块注释
通常用于说明程序段功能、技巧性编码等。位置在需说明的代码段之前。
行注释
作用同块注释,位置在需说明的代码后两个单位缩进处。
编码指导
-
类如果不继承自其他类,则应显式继承object。
-
尽量使用%格式化方法组织字符串,不要使用字串拼接。如:"%s hello!" % (userName)
-
尽可能使用with语句处理文件或socket句柄,以确保使用完后被关闭。
-
尽可能使用is、is not取代== 。
-
主程序应放在main()函数中,在程序文件的末尾通过如下形式调用。
if __name__ =='__main__':
main()
参考
-
PEP8 Python 编码规范整理{:target="_blank"}
-
Python 编程规范{:target="_blank"}
-
简明Python编程规范{:target="_blank"}