目录
一、简明概述
1、编码
- 如无特殊情况,文件一律使用
utf-8
编码,即在文件头部必须加入标识# -*- conding: utf-8 -*-
2、代码格式
(1)缩进
- 统一使用 4 个空格进行缩进
(2)行宽
- 每行代码尽量不要超过 80 个字符(在特殊情况下,可以略微超过 80,但最长不能超过 120 个字符)
理由:
- 方便查看
side-by-side
的diff
- 方便在控制台下查看代码
- 太长可能是设计有缺陷
(3)引号
自然语言使用双引号,机器标示使用单引号,因此代码里多数情况下应该是使用单引号。
- 自然语言使用双引号:例如错误信息等
- 机器标示使用单引号:例如
dict
中的key
- 正则表达式使用原生的双引号:
r""
- 文档字符串(
docstring
)使用三个双引号
(4)空行
- 模块级函数和类定义之间空两行
- 类的成员函数之间空一行
class A:
def __init__(self):
pass
def hello_world(self):
pass
def main():
pass
- 可以使用多个空行分割多组相关的函数
- 函数中可以使用空行分割出逻辑相关的代码
3、import
语句
import
语句应该分行书写
# 正确的写法
import os
import sys
# 不推荐的写法
import os, sys
# 正确的写法
from subprocess import Popen, PIPE
import
语句应该使用absolute import
# 正确的写法
from foo.bar import Bar
# 不推荐的写法
from ..bar import Bar
import
语句应该放在文件头部,置于模块说明及docstring
之后,于全局变量之前;import
语句应该按照顺序排列,每组之间用一个空行分隔
import os
import sys
import msgpack
import zmq
import foo
- 导入其他模块的类定义时,可以使用相对导入
from myclass import MyClass
- 如果发生命名冲突,则可使用命名空间
import bar
import foo.bar
bar.Bar()
foo.bar.Bar()
4、空格
- 在二元运算符两边各空一格
[=,-,+=,==,>,in,is not, and]
:
# 正确的写法
i = i + 1
submitted += 1
x = x * 2 -