编码
若无特殊情况,文件一律使用 UTF-8
编码,文件头部不许加入 # -*- coding: utf-8 -*-
标识,如下所示:
# -*- coding: utf-8 -*- ……点击复制复制失败已复制
代码格式
统一使用 4个空格
进行缩进。
引号
简单说,自然语言使用双引号,机器标识使用单引号。因此,代码里多数应该使用单引号。
- 自然语言使用双引号
"……"
例如:错误信息,很多情况下还是Unicode
,使用u"你好世界"
。 - 机器标识使用单引号
'……'
例如:dict
里面的key
- 正则表达式使用原生的双引号
r"……"
- 文档字符串使用三个双引号
"""……"""
空行
模块级函数和类定义之间空两行,类成员函数之间空一行,如下所示:
class A: def __init__(self): pass def hello(self): pass def main(): pass点击复制复制失败已复制
提示
可以使用多个空行分割多组相关的函数,或使用空行分割逻辑相关的代码。
import 语句
import
语句主要用来在程序中导入 Python
标准库和扩展库。
import
语句应该分行书写,例如:
# 正确的写法 import os import sys # 不推荐的写法 import sys,os # 正确的写法 from subprocess import Popen, PIPE点击复制复制失败已复制
import
语句最好使用绝对引用的方式,例如:
# 正确的写法 from foo.bar import Bar # 不推荐的写法 from ..bar import Bar点击复制复制失败已复制
import
语句应该放在文件头部,至于模块说明及 docstring
之后,于全局变量之前。还应该按照顺序排列,每组之间用一个空行分割。例如:
import os import sys import msgpack import zmq import foo点击复制复制失败已复制
导入其他模块的类定义时,可以使用相对引入,例如:
from myclass import MyClass点击复制复制失败已复制
如果发生命名冲突,则可使用名称空间,例如:
import bar import foo.bar bar.Bar() foo.bar.Bar()点击复制复制失败已复制
空格
Python
程序中,空格的使用规范非常严禁,主要有以下几点:
- 在
二元运算符
两边各空一格,二元运算符包括=
、+
、+=
、==
、>
、in
、is not
、and
等 - 函数的参数列表中,
“, ”
之后要有空格 - 函数的参数列表中,默认值等号两边不要添加空格
- 左括号之后,右括号之前不要加多余的空格
- 字典对象的左括号之前不要加多余的空格
- 不要为了对齐赋值语句而使用额外的空格
换行
Python
支持括号内换行
- 将第二行缩进到括号的起始处
foo = long_function_name(var_one, var_two, var_three, var_four)点击复制复制失败已复制
- 将第二行缩进
4个空格
,适用于从起始括号就换行的情形
def long_function_name( var_one, var_two, var_three, var_four): print(var_one)点击复制复制失败已复制
- 反斜
\
杠换行
使用反斜杠\
换行,二元运算符+
等应出现在行末,长字符串也可以用此法换行。如下所示:
session.query(MyTable).\ filter_by(id=1).\ one() print 'Hello,'\ '%s %s!'%\ ('Hary','Potter')点击复制复制失败已复制
注意
禁止使用复合语句,即禁止在一行中包含多个语句: if/for/while
一定要换行。