python 平均值_Python随笔11:Python代码规范之注释和文档
引言:每天习以为常的Python代码,是否符合Python的规范?想写出Pytonic风格的代码,却不知道如何开始?
这个“Python代码规范”系列将会解决这些规范性的问题。
注:本代码规范基于PEP8, 在PEP8的基础上做了一些改动。
注释和文档
代码注释和文档(docstring)的规范,参考并综合了PEP257、Google Python Style Guide和Numpy的文档标准。
注释
- 单行注释和多行注释,请参考Python随笔10:Python代码规范之简明概述。
- 在代码的关键部分(或比较复杂的地方),能写注释的要尽量写注释。
- 比较重要的注释段,使用多个等号隔开,可以更加醒目,突出重要性。
app = create_app(name, options)# =====================================# 请勿在此处添加 get post等app路由行为 !!!# =====================================if __name__ == '__main__': app.run()
文档注释(Docstring)
作为文档的Docstring一般出现在模块头部、函数和类的头部,这样在python中可以通过对象的doc对象获取文档。编辑器和IDE也可以根据Docstring给出自动提示。
- 文档注释以 """ 开头和结尾,首行不换行,如有多行,末行必需换行,以下是Google的docstring风格示例:
# -*- coding: utf-8 -*-"""Example docstrings.This module demonstrates documentation as specified by the `Google PythonStyle Guide`_. Docstrings may extend over multiple lines. Sections are createdwith a section header and a colon followed by a block of indented text.Example: Examples can be given using either the ``Example`` or ``Examples`` sections. Sections support any reStructuredText formatting, including literal blocks:: $ python example_google.pySection breaks are created by resuming unindented text. Section breaksare also implicitly created anytime a new section starts."""
- 不要在文档注释复制函数定义原型,而是具体描述其具体内容,解释具体参数和返回值等:
# 不推荐的写法(不要写函数原型等废话)def function(a, b): """function(a, b) -> list""" ... ...# 正确的写法def function(a, b): """计算并返回a到b范围内数据的平均值""" ... ...
- 对函数参数、返回值等的说明采用numpy标准,如下所示:
def func(arg1, arg2): """在这里写函数的一句话总结(如: 计算平均值). 这里是具体描述. 参数 ---------- arg1 : int arg1的具体描述 arg2 : int arg2的具体描述 返回值 ------- int 返回值的具体描述 参看 -------- otherfunc : 其它关联函数等... 示例 -------- 示例使用doctest格式, 在`>>>`后的代码可以被文档测试工具作为测试用例自动运行 >>> a=[1,2,3] >>> print [x + 3 for x in a] [4, 5, 6] """
- 文档注释不限于中英文,但不要中英文混用。
- 文档注释不是越长越好,通常一两句话能把情况说清楚即可。
- 模块、公有类、公有方法,能写文档注释的,应该尽量写文档注释。
To be continued.