时间:2021-05-22
什么是docstring
在软件工程中,其实编码所占的部分是非常小的,大多是其它的事情,比如写文档。文档是沟通的工具。
在Python中,比较推崇在代码中写文档,代码即文档,比较方便,容易维护,直观,一致。
代码写完,文档也出来了。其实Markdown也差不多这种思想,文本写完,排版也完成了。
看看PEP 0257中对docstring的定义:
A docstring is a string literal that occurs as the first statement in
a module, function, class, or method definition. Such a docstring
becomes the __doc__ special attribute of that object.
简单来说,就是出现在模块、函数、类、方法里第一个语句的,就是docstring。会自动变成属性__doc__。
可通过foo.__doc__访问得到' This is function foo'.
各类docstring风格:
Epytext
这是曾经比较流行的一直类似于javadoc的风格。
"""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"""reST
这是现在流行的一种风格,reST风格,Sphinx的御用格式。我个人也是喜欢用这种风格,比较紧凑。
"""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"""Google风格
"""This is a groups style docs.Parameters: param1 - this is the first param param2 - this is a second paramReturns: This is a description of what is returnedRaises: KeyError - raises an exception"""Numpydoc (Numpy风格)
"""My numpydoc description of a kindof very exhautive numpydoc format docstring.Parameters----------first : array_like the 1st param name `first`second : the 2nd paramthird : {'value', 'other'}, optional the 3rd param, by default 'value'Returns-------string a value in a stringRaises------KeyError when a key errorOtherError when an other error"""docstring工具之第三方库pyment
用来创建和转换docstring.
使用方法就是用pyment生成一个patch,然后打patch。
详情:https://github.com/dadadel/pyment
使用sphinx的autodoc自动从docstring生产api文档,不用再手写一遍
我在代码中已经写过docstring了,写api文档的内容跟这个差不多,难道要一个一个拷贝过去rst吗?当然不用。sphinx有autodoc功能。
首先编辑conf.py文件,
1. 要有'sphinx.ext.autodoc'这个extensions
2. 确保需要自动生成文档的模块可被import,即在路径中。比如可能需要sys.path.insert(0, os.path.abspath(‘../..'))
然后,编写rst文件,
xxx_api module---------------------.. automodule:: xxx_api :members: :undoc-members: :show-inheritance:敲make html命令,就可以从docstring中生成相关的文档了,不用多手写一遍rst.声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python3注释确保对模块,函数,方法和行内注释使用正确的风格Python中的注释有单行注释和多行注释:Python中单行注释以#开头,例如::#这是一个注释
一、python单行注释符号(#)python中单行注释采用#开头示例:#thisisacomment二、批量、多行注释符号多行注释是用三引号”'”'包含的,例
写出自解释文档代码,然后让这部分歇息吧。这不是说着玩。使用英文编写注释。使用一个空格将注释与符号隔开。注释超过一个单词了,应句首大写并使用标点符号。句号后使用一
我们查看很多网站源代码的时候,会发现很多注释,特别是新浪网注释标签用于在源文档中插入注释,注释文字一般作为程序员参考使用,特别是大型、多人开发的网站源码,如果没
Python程序的注释感觉很不合群,对于习惯了使用多行注释的人来说,到Python中只能使用#号进行单行注释很痛苦。复制代码代码如下:#这里是单行注释#