代码阅读比写更加频繁,编码规范主要用于提升代码的可读性。
1.Indentation缩进
缩进采用四个空格。续行缩进与包裹元素垂直对齐,或是采用更多的缩进与其他行区分,这里的缩进不严格采用4个空格。
# 与左括号对齐
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 用更多的缩进来与其他行区分
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
2.Maximum Line Length 行的最大长度限制为79
3.Imports 导入
导入总是位于文件的顶部,在模块注释和文档字符串之后,在模块的全局变量与常量之前。
导入应该按照以下顺序分组:
1.标准库导入
2.相关第三方库导入
3.本地应用/库特定导入
你应该在每一组导入之间加入空行。
采用绝对导入而不是相对导入。
像__all__
, __author__
, __version__
等这样的模块级“呆名“(也就是名字里有两个前缀下划线和两个后缀下划线),应该放在文档字符串的后面,以及除from __future__
之外的import表达式前面。Python要求将来在模块中的导入,必须出现在除文档字符串之外的其他代码之前。
4.spaces空格
1.紧跟在括号之后无需空格
2.在逗号、分号、冒号之前无需空格
3.在二元运算符前后添加空格
4.在函数的命名关键字参数的=两端无需空格
5.comments注释
1.特殊注释
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2.多行注释
# reST风格
"""
This is a reST style.
:param param1: this is a first param
:param param2: this is a second param
:returns: this is a description of what is returned
:raises keyError: raises an exception
"""
# Epytext
"""
This is a javadoc style.
@param param1: this is a first param
@param param2: this is a second param
@return: this is a description of what is returned
@raise keyError: raises an exception
"""