Docstrings - une ligne vs de ligne multiples
Je suis en ajoutant certains (epydoc) la documentation d'un package que j'ai écrit, et je suis de venir à travers un grand nombre de cas où je vais me répéter une multitude de fois.
def script_running(self, script):
"""Return if script is running
@param script: Script to check whether running
@return: B{True} if script is running, B{False} otherwise
@rtype: C{bool}
"""
PEP257 dit que:
One-liners sont vraiment des cas évidents.
et aussi
La docstring pour une fonction ou une méthode doit résumer son comportement et de documenter ses arguments, la valeur de retour(s), les effets secondaires, les exceptions soulevées, et les restrictions sur le moment où il peut être appelé (si applicable).
Est-il une ligne directrice générale ou de la norme de pratique pour quand de tracer la ligne entre un one-liner (description) et plein param/retour des champs?
Ou lors de la génération de la documentation dois-je inclure chaque champ applicable pour chaque fonction, indépendamment de la façon répétitive, il semble?
Question Bonus: un point de vue Syntaxique, ce qui est la meilleure façon de décrire la script
param?
OriginalL'auteur Alex L | 2012-02-22
Vous devez vous connecter pour publier un commentaire.
La règle générale que vous cherchez est de droit dans PEP257 dans ce que vous avez cité, peut-être vous avez juste besoin de le voir en action.
Votre fonction est un bon candidat pour une ligne de docstring ("vraiment des cas évidents"):
Habituellement, si vous dites qu'une fonction est de vérifier quelque chose, il signifie qu'il va revenir
True
ouFalse
, mais si vous le souhaitez, vous pourriez être plus précis:Une fois de plus dans une seule ligne.
Je ne serais probablement aussi changer le nom de votre fonction, car il n'y a pas besoin de mettre l'accent sur ce que la fonction travaille en son nom (un script). Un nom de fonction doit être quelque chose de doux, court et significatif sur quoi la fonction. Probablement, je vais aller avec:
Parfois la fonction-nom-de l'imagination est fatigué par tout le codage, mais vous devriez quand même essayer de faire de votre mieux.
Pour une multiligne exemple, permettez-moi d'emprunter une docstring de la les directives de google:
Ce pourrait être une manière de "résumer son comportement et de documenter ses arguments, la valeur de retour(s), les effets secondaires, les exceptions soulevées, et les restrictions sur le moment où il peut être appelé (si applicable)".
Vous pourriez aussi être intéressé à regarder ce exemple de projet pypi que c'est censé être documenté avec des Sphinx.
Mes 2 cents: lignes Directrices sont destinés à vous donner une idée de ce que vous devriez et ne devriez pas le faire, mais ils ne sont pas des règles strictes que vous avez à suivre aveuglément. Ainsi, à la fin de choisir ce que vous sentez être mieux.
Je voudrais quelque chose de clair qui est dit dans une autre réponse à frapper la Maximum de la Longueur de la Ligne avec une docstring.
PEP8 vous dit de "Limite de toutes les lignes jusqu'à un maximum de 79 caractères" même si à la fin tout le monde ne 80.
Ce sont 80 charachters:
Et ce peut être un cas limite où un peu plus long qu'une phrase est tout ce dont vous avez besoin:
Est comme une ligne de docstring, ce qui signifie que est vraiment un cas évident, mais sur votre éditeur de texte (avec le 80 caractere limite) est sur plusieurs lignes.
OriginalL'auteur Rik Poggi
Je pense qu'il ya toujours un certain degré de répétition impliqués lors de l'ajout de la syntaxe étendue pour les docstrings, c'est à dire epydoc/sphinx de balisage.
Je voudrais également dire que cette question est subjective rahter de l'objectif. Explicite est mieux qu'implicite, et semble suivre le Zen de Python plus.
OriginalL'auteur Nick Martin