Es gibt ein Doctstring-Beispiel für Sphinx in ihrer Dokumentation. Insbesondere zeigen sie Folgendes:
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
Obwohl du danach gefragt hast Sphinxausdrücklich würde ich auch auf den Google Python Style Guide verweisen . Ihr Docstring-Beispiel scheint zu implizieren, dass sie nicht speziell kwargs rufen. (other_silly_variable = Keine)
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 hat eine Frage zur akzeptierten Antwort auf die Dokumentation der Unterprozessverwaltung. Wenn Sie ein Modul importieren, können Sie die Modul-Dokumentzeichenfolgen schnell über inspect.getsource anzeigen.
Ein Beispiel aus dem Python-Interpreter mit der Empfehlung von Silent Ghost:
>>> import subprocess
>>> import inspect
>>> import print inspect.getsource(subprocess)
Natürlich können Sie die Moduldokumentation auch über die Hilfefunktion anzeigen. Zum Beispiel Hilfe (Unterprozess)
Ich persönlich bin kein Fan des Subprozess-Docstrings für kwargs als Beispiel, aber wie im Google-Beispiel werden kwargs nicht separat aufgelistet, wie im Sphinx-Dokumentationsbeispiel gezeigt.
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()
Ich füge diese Antwort der Frage von ABB hinzu, da es erwähnenswert ist, dass Sie die Quelle oder Dokumentation eines Moduls auf diese Weise überprüfen können, um Einblicke und Anregungen für das Kommentieren Ihres Codes zu erhalten.