Print (__ doc__) в Python 3 script
Я не могу понять, что делает print(__doc__)
в начале script, например в этом примере Scikit.
Я искал Python docstrings в google, и кажется, что __doc__
полезно предоставить некоторую документацию, например, в функциях. Но я не вижу, что делает __doc__
в середине script.
Ответы
Ответ 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()
, например) может интроспективно это же значение.