今天在整理Python文档的时候,发现除了目前在用的如下格式外,还有很多种。就简单整理一下。
def foo(bar: str) -> str: """ foo function :param str bar: bar :return: return bar :rtype: str """ return bar
目前流行的格式有如下几种,我之前用的属于reST,是目前最广泛的一种方式,是Sphinx原生支持的格式。还有Epytext,好像是从Java那来的。如果你在Swagger Codegen上生成过Python 代码会发现其中的格式也是reST。还有一种比较流行的是Google自家用的格式,貌似更简洁一些,格式可以参考这里。Numpy团队在Google的基础上搞了一套格式,参考这里
""" 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 """
""" 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 """
""" This is an example of Google style. Args: param1: This is the first param. param2: This is a second param. Returns: This is a description of what is returned. Raises: KeyError: Raises an exception. """
""" My numpydoc description of a kind of very exhautive numpydoc format docstring. Parameters ---------- first : array_like the 1st param name `first` second : the 2nd param third : {'value', 'other'}, optional the 3rd param, by default 'value' Returns ------- string a value in a string Raises ------ KeyError when a key error OtherError when an other error """
参考:
https://stackoverflow.com/a/24385103/7151777
最后,想抱Google的大腿了,但是工作量巨大。。。后悔没在一开始就选好T T