What is docstring
In software engineering, coding actually plays a very small part, mostly other things, such as writing documents. Documents are tools for communication.
In Python, it is highly recommended to write documents in the code. The code is the document, which is more convenient, easy to maintain, intuitive and consistent.
After the code is written, the documentation is also out. In fact, Markdown has similar ideas. After the text is written, the typesetting is also completed.
Look at the definition of docstring in PEP 0257:
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.
To put it simply, the first statement that appears in a module, function, class, or method is the docstring. It will automatically become the attribute __doc__.
1 2 |
|
Can be accessed through foo.__doc__ to get 'This is function foo'.
Various docstring styles:
Epytext
This was once a popular style similar to javadoc.
1 2 3 4 5 6 7 8 |
|
reST
This is a popular style now, reST style, the royal format of Sphinx. I personally also like to use this style, which is more compact.
1 2 3 4 5 6 7 8 |
|
Google Style
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Numpydoc (Numpy style)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
docstring tool third-party library pyment
is used to create and convert docstring.
The method of use is to use pyment to generate a patch and then apply the patch.
1 2 |
|
Details: https://github.com/dadadel/pyment
Use sphinx's autodoc to automatically produce api documents from docstring, no need Write it again by hand
I have already written the docstring in the code. The content of writing the API document is similar to this. Do I need to copy it one by one to rst? Of course not. sphinx has autodoc function.
First edit the conf.py file,
1. There must be the 'sphinx.ext.autodoc' extensions
2. Make sure that the module that needs to automatically generate documentation can be imported, that is, it is in the path. For example, you may need sys.path.insert(0, os.path.abspath('../..'))
Then, write the rst file,
1 2 3 4 5 6 7 |
|
Type the make html command to generate relevant documents from the docstring without having to write rst by hand.
See the effect:
For more articles related to the multi-line comment document writing style in Python, please pay attention to the PHP Chinese website!