Что означают голые строки в теле определения класса?

#python

#python

Вопрос:

Вот фрагмент кода из django.core.exceptions :

 class MiddlewareNotUsed(Exception):
    "This middleware is not used in this server configuration"
    pass
  

Является ли голая строка в теле класса простым литералом для документации? Или это выполняет какую-то магию?

Комментарии:

1. Пожалуйста, не оставайтесь в стороне от них. Строки документации — одна из моих любимых функций python. 1) Они позволяют легко документировать. 2) В интерпретаторе можно получить доступ к строке документа объекта / функции my_object.__doc__ , что значительно упрощает изучение новой библиотеки. 3) Они позволяют проводить простые модульные тесты с модулем docttest.

Ответ №1:

Это строка документа:

Строка документа — это строковый литерал, который встречается в качестве первого оператора в определении модуля, функции, класса или метода. Такая строка документа становится __doc__ специальным атрибутом этого объекта.

Все модули обычно должны иметь строки документации, и все функции и классы, экспортируемые модулем, также должны иметь строки документации. Общедоступные методы (включая __init__ конструктор) также должны иметь строки документации. Пакет может быть задокументирован в __init__.py строке документа модуля файла в каталоге пакета.

Комментарии:

1. Вы также можете добавить, почему у вас должны быть строки документации. Например, возможность автоматического тестирования с doctest помощью модуля.

Ответ №2:

Это строка документа. Единственная магия заключается в том, что она заканчивается на объекте как __doc__ .

Ответ №3:

Это называется docstring .