Utilisation de javadoc pour la documentation Python [fermé]

je commence actuellement avec Python et j'ai un fond PHP fort et en PHP j'ai pris l'habitude d'utiliser javadoc comme modèle de documentation.

je me demandais si javadoc avait sa place comme docstring documentation en Python. Est quelque chose comme cela trop compliqué pour rentrer dans l'état d'esprit Python ou devrais-je essayer d'être aussi concis que possible?

"""
replaces template place holder with values

@param string timestamp     formatted date to display
@param string priority      priority number
@param string priority_name priority name
@param string message       message to display

@return string formatted string
"""

et si je suis un peu trop exhaustif je devrais aller avec quelque chose comme ça à la place (où la plupart de la documentation n'est pas imprimée par la méthode __doc__ )?

# replaces template place holder with values
#    
# @param string timestamp     formatted date to display
# @param string priority      priority number
# @param string priority_name priority name
# @param string message       message to display
#    
# @return string formatted string

def format(self, timestamp = '', priority = '', priority_name = '', message = ''):
    """
    replaces template place holder with values
    """
    values = {'%timestamp%' : timestamp,
              '%priorityName%' : priority_name,
              '%priority%' : priority,
              '%message%' : message}

    return self.__pattern.format(**values)
150
demandé sur gariepy 2011-03-17 06:22:52

4 réponses

regardez le format reStructuredText (aussi connu sous le nom de" reST"), qui est un format de markup en plaintext/docstring, et probablement le plus populaire dans le monde de Python. Et vous devriez certainement regarder Sphinx , un outil pour générer de la documentation à partir de reStructuredText (utilisé pour par exemple. la documentation Python elle-même). Sphinx inclut la possibilité d'extraire de la documentation des docstrings de votre code (voir Sphinx.ext.autodoc ), et reconnaît reST field lists suivant certaines conventions. Cela est probablement devenu (ou est en train de devenir) la façon la plus populaire de le faire.

votre exemple pourrait ressembler à ceci:

"""Replaces template placeholder with values.

:param timestamp: formatted date to display
:param priority: priority number
:param priority_name: priority name
:param message: message to display
:returns: formatted string
"""

ou étendu avec l'information de type:

"""Replaces template placeholder with values.

:param timestamp: formatted date to display
:type timestamp: str or unicode
:param priority: priority number
:type priority: str or unicode
:param priority_name: priority name
:type priority_name: str or unicode
:param message: message to display
:type message: str or unicode
:returns: formatted string
:rtype: str or unicode
"""
223
répondu Steven 2015-09-08 17:13:55

Suivre Google Python Guide De Style . Notez que Sphinx peut également analyser ce format en utilisant l'extension Napolean , qui sera fourni avec Sphinx 1.3 (ce qui est également compatible avec PEP257 ):

def func(arg1, arg2):
    """Summary line.

    Extended description of function.

    Args:
        arg1 (int): Description of arg1
        arg2 (str): Description of arg2

    Returns:
        bool: Description of return value

    """
    return True

exemple tiré de la documentation Napoléenne liée ci-dessus.

un exemple complet sur tous les types de cordons ici .

66
répondu confused00 2016-07-20 15:55:56

la norme pour les chaînes de documentation python est décrite dans Python Enhancement Proposal 257 .

le commentaire approprié pour votre méthode serait quelque chose comme

def format(...):
    """Return timestamp string with place holders replaced with values.

    Keyword arguments:
    timestamp     -- the format string (default '')
    priority      -- priority number (default '')
    priority_name -- priority name (default '')
    message       -- message to display (default '')
    """
25
répondu srgerg 2011-03-17 03:47:12

regardez Documenting Python , une page " destinée aux auteurs et auteurs potentiels de documentation pour Python."

en bref, reStructuredText est ce qui est utilisé pour documenter Python lui-même. Le guide du développeur contient un manuel reST primer, un guide de style et des conseils généraux pour rédiger une bonne documentation.

1
répondu David Cain 2012-07-19 03:31:03