格式规范
缩进:统一使用
4
个空格进行缩进行宽:每行代码尽量不超过
80
个字符引号:自然语言使用双引号,机器标识使用单引号
空行:模块级函数和类定义之间空两行,类成员函数之间空一行
1
2
3
4
5
6
7
8
9
10
11class A:
def __init__(self):
pass
def hello(self):
pass
def main():
pass编码:文件使用
UTF-8
编码,文件头部加入#-*-conding:utf-8-*-
标识import:
import 语句
应该分行书写1
2
3
4
5
6
7
8
9# 正确的写法
import os
import sys
# 不推荐的写法
import sys,os
# 正确的写法
from subprocess import Popen, PIPE空格:
- 在二元运算符两边各空一格
[=, -, +=, ==, >, in, is not, and]
- 函数的参数列表中,
,
之后要有空格 - 函数的参数列表中,默认值等号两边不要添加空格
- 左括号之后,右括号之前不要加多余的空格
- 字典对象的左括号之前不要多余的空格
- 不要为对齐赋值语句而使用的额外空格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51# 正确的写法
i = i + 1
submitted += 1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
# 不推荐的写法
i=i+1
submitted +=1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
# 正确的写法
def complex(real, imag):
pass
# 不推荐的写法
def complex(real,imag):
pass
# 正确的写法
def complex(real, imag=0.0):
pass
# 不推荐的写法
def complex(real, imag = 0.0):
pass
# 正确的写法
spam(ham[1], {eggs: 2})
# 不推荐的写法
spam( ham[1], { eggs : 2 } )
# 正确的写法
dict['key'] = list[index]
# 不推荐的写法
dict ['key'] = list [index]
# 正确的写法
x = 1
y = 2
long_variable = 3
# 不推荐的写法
x = 1
y = 2
long_variable = 3- 在二元运算符两边各空一格
换行:
- 第二行缩进到括号的起始处
- 禁止复合语句,即一行中包含多个语句
if/for/while
一定要换行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17foo = long_function_name(var_one, var_two,
var_three, var_four)
# 正确的写法
do_first()
do_second()
do_third()
# 不推荐的写法
do_first();do_second();do_third();
# 正确的写法
if foo == 'blah':
do_blah_thing()
# 不推荐的写法
if foo == 'blah': do_blash_thing()docstring:所有的公共模块、函数、类、方法,都应该写
docstring
注释规范
- 在代码的关键部分,能写注释的要尽量写注释
- 比较重要的注释段,使用多个等号隔开,可以更加醒目,突出重要性
- 文档注释以 “”” 开头和结尾,首行不换行,如有多行,末行必需换行
- 要在文档注释复制函数定义原型,而是具体描述其具体内容,解释具体参数和返回值等
1 | app = create_app(name, options) |
命名规范
- 模块:模块名尽量使用小写命名,首字母保持小写,尽量不要用下划线
- 类:类名使用驼峰 (CamelCase) 命名风格,首字母大写,私有类可用一个下划线开头
- 函数:函数名一律小写,如有多个单词,用下划线隔开,私有函数可用一个下划线开头
- 变量:变量名尽量小写,如有多个单词,用下划线隔开
- 常量:常量名采用全大写,如有多个单词,使用下划线隔开
1 | # 模块命名 |