web-dev-qa-db-fra.com

print (__ doc__) in Python 3 script

Je n'arrive pas à comprendre ce que fait la print(__doc__) au début d'un script, comme dans cet exemple de Scikit .

Je cherchais des documents Python dans Google, et il semble que __doc__ est utile pour fournir de la documentation, par exemple, sur les fonctions. Mais je ne vois pas ce que fait __doc__ faire au milieu d'un script.

44
Tanguy

il semble que __doc__ soit utile pour fournir de la documentation dans, par exemple, des fonctions

C'est vrai. Outre les fonctions, une documentation peut également être fournie dans des modules. Donc, si vous avez un fichier nommé mymodule.py Comme ceci:

"""This is the module docstring."""

def f(x):
    """This is the function docstring."""
    return 2 * x

Vous pouvez accéder à ses docstrings comme ceci:

>>> import mymodule
>>> mymodule.__doc__
'This is the module docstring.'
>>> mymodule.f.__doc__
'This is the function docstring.'

Revenons maintenant à votre question: que fait print(__doc__)? En termes simples: il imprime le module docstring. Si aucune chaîne de documentation n'a été spécifiée, __doc__ Est défini par défaut sur None.

72
Andrea Corbellini

Toute fonction, classe ou module commençant par un littéral de chaîne a une valeur non vide __doc__; cette chaîne initiale est considérée comme la chaîne de documentation; il sera réglé sur None si aucune chaîne de ce type n'est présente. Voir la docstring définition du terme dans le Python glossaire.

Lorsque vous téléchargez cet exemple de script Scikit, vous verrez qu'il commence par une telle chaîne:

"""
================================
Recognizing hand-written digits
================================

An example showing how the scikit-learn can be used to recognize images of
hand-written digits.

This example is commented in the
:ref:`tutorial section of the user manual <introduction>`.

"""

La commande print(__doc__) réutilise simplement cette chaîne de documentation pour l'écrire sur votre terminal à chaque fois que vous exécutez le script, et tout autre outil python (comme l'interpréteur interactif help() function, par exemple) peut introspecter cette même valeur.

16
Martijn Pieters