Skip to content

Instantly share code, notes, and snippets.

@nipunsadvilkar
Created March 23, 2017 07:10
Show Gist options
  • Save nipunsadvilkar/a3c3b4a7a133b7780b4943e9adcfe83f to your computer and use it in GitHub Desktop.
Save nipunsadvilkar/a3c3b4a7a133b7780b4943e9adcfe83f to your computer and use it in GitHub Desktop.
What is the standard Python docstring format?

Formats

Python docstrings can be written following several formats as the other posts showed. However the default Sphinx docstring format was not mentioned and is based on reStructuredText (reST). You can get some information about the main formats in that tuto.

Note that the reST is recommended by the PEP 287

There follows the main used formats for docstrings.

- Epytext

Historically a javadoc like style was prevalent, so it was taken as a base for Epydoc (with the called Epytext format) to generate documentation.

Example:

""" 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

Nowadays, the probably more prevalent format is the reStructuredText (reST) format that is used by Sphinx to generate documentation. Note: it is used by default in JetBrains PyCharm (type triple quotes after defining a method and hit enter). It is also used by default as output format in Pyment.

Example:

""" 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

Google has their own format that is often used. It also can be interpreted by Sphinx.

Example:

""" 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. """ Even more examples

- Numpydoc

Note that Numpy recommend to follow their own numpydoc based on Google format and usable by Sphinx.

""" 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 """ Converting/Generating

It is possible to use a tool like Pyment to automatically generate docstrings to a Python project not yet documented, or to convert existing docstrings (can be mixing several formats) from a format to an other one.

Note: The examples are taken from the Pyment documentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment