C'è un esempio di doctstring per Sphinx nella loro documentazione. Nello specifico mostrano quanto segue:
def public_fn_with_googley_docstring(name, state=None):
"""This function does something.
Args:
name (str): The name to use.
Kwargs:
state (bool): Current state to be in.
Returns:
int. The return code::
0 -- Success!
1 -- No good.
2 -- Try again.
Raises:
AttributeError, KeyError
A really great idea. A way you might use me is
>>> print public_fn_with_googley_docstring(name='foo', state=None)
0
BTW, this always returns 0. **NEVER** use with :class:`MyPublicClass`.
"""
return 0
Anche se hai chiesto informazioni sfingeesplicitamente, vorrei anche indicare la Guida allo stile di Google Python . Il loro esempio di docstring sembra implicare che non chiamano specificamente kwarg. (other_silly_variable = Nessuno)
def fetch_bigtable_rows(big_table, keys, other_silly_variable=None):
"""Fetches rows from a Bigtable.
Retrieves rows pertaining to the given keys from the Table instance
represented by big_table. Silly things may happen if
other_silly_variable is not None.
Args:
big_table: An open Bigtable Table instance.
keys: A sequence of strings representing the key of each table row
to fetch.
other_silly_variable: Another optional variable, that has a much
longer name than the other args, and which does nothing.
Returns:
A dict mapping keys to the corresponding table row data
fetched. Each row is represented as a tuple of strings. For
example:
{'Serak': ('Rigel VII', 'Preparer'),
'Zim': ('Irk', 'Invader'),
'Lrrr': ('Omicron Persei 8', 'Emperor')}
If a key from the keys argument is missing from the dictionary,
then that row was not found in the table.
Raises:
IOError: An error occurred accessing the bigtable.Table object.
"""
pass
ABB ha una domanda sulla risposta accettata di fare riferimento alla documentazione di gestione dei sottoprocessi. Se importi un modulo, puoi visualizzare rapidamente le docstrings del modulo tramite inspect.getsource.
Un esempio dell'interprete Python che utilizza la raccomandazione di Silent Ghost:
>>> import subprocess
>>> import inspect
>>> import print inspect.getsource(subprocess)
Ovviamente puoi anche visualizzare la documentazione del modulo tramite la funzione di aiuto. Ad esempio aiuto (sottoprocesso)
Personalmente non sono un fan della docstring di sottoprocesso per kwargs come esempio, ma come l'esempio di Google non elenca kwarg separatamente come mostrato nell'esempio della documentazione di Sphinx.
def call(*popenargs, **kwargs):
"""Run command with arguments. Wait for command to complete, then
return the returncode attribute.
The arguments are the same as for the Popen constructor. Example:
retcode = call(["ls", "-l"])
"""
return Popen(*popenargs, **kwargs).wait()
Includo questa risposta alla domanda di ABB perché vale la pena notare che puoi rivedere la fonte o la documentazione di qualsiasi modulo in questo modo per approfondimenti e ispirazione per commentare il tuo codice.