Подтвердить что ты не робот

Print (__ doc__) в Python 3 script

Я не могу понять, что делает print(__doc__) в начале script, например в этом примере Scikit.

Я искал Python docstrings в google, и кажется, что __doc__ полезно предоставить некоторую документацию, например, в функциях. Но я не вижу, что делает __doc__ в середине script.

4b9b3361

Ответ 1

кажется, что __doc__ полезно предоставить некоторую документацию, например, в функциях

Это верно. В дополнение к функциям документация также может предоставляться в модулях. Итак, если у вас есть файл с именем mymodule.py следующим образом:

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

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

Вы можете получить доступ к своим docstrings следующим образом:

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

Теперь вернемся к вашему вопросу: что делает print(__doc__)? Проще говоря: он печатает модуль docstring. Если docstring не указана, __doc__ по умолчанию None.

Ответ 2

Любая функция, класс или модуль, начиная с строкового литерала, имеет непустую __doc__; эта начальная строка берется как строка документации; он будет установлен в None, если такая строка отсутствует. См. определение терминов docstring в глоссарии Python.

Когда вы загружаете этот пример Scikit script, вы увидите, что он начинается с такой строки:

"""
================================
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>`.

"""

Команда print(__doc__) просто повторно использует эту строку документации для записи ее на ваш терминал каждый раз при запуске script, а любой другой инструмент python (например, функция интерактивного интерпретатора help(), например) может интроспективно это же значение.