Правила комментирования функций в Python: лучшие практики

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Стандартом для документации функций в Python являются докстроки. Написание докстроков считается правилом хорошего тона в программировании на Python. Докстроки помещаются непосредственно под строкой, в которой объявляется функция, и обрамляются парой трех двойных кавычек ("""). В докстроках кратко описываются цель функции, принимаемые ею аргументы и возвращаемое значение.

Python
Скопировать код
def multiply(a, b):
    """Умножает 'a' на 'b' и возвращает результат."""
    return a * b

Докстроки – это не просто пояснение к вашему коду на письменном языке, но и способ автоматизировать процесс создания документации. Они соответствуют стандартам PEP 257, который устанавливает рекомендации по оформлению докстроков в Python.

Кинга Идем в IT: пошаговый план для смены профессии

Разбираемся с наилучшими практиками написания докстроков

Делайте докстроки понятными и запоминающимися.

Не лимитируйте себя простым перечислением деталей. Ваши докстроки должны служить обстоятельными руководствами, информируя о типе и смысле параметров, возможных результатах выполнения, побочных эффектах и об исключительных ситуациях, с которыми код может столкнуться. Главное – ваш код должен давать прогнозируемые результаты, а не неожиданные сюрпризы.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Приводите примеры использования при помощи доктестов

Выходите за рамки простых описаний, продемонстрируйте применение функции на практике, используя доктесты в докстроках. Доктесты Сразу решают две задачи: они обучают и служат в качестве простого инструмента для юнит-тестирования.

Python
Скопировать код
def add(a, b):
    """
    Складывает 'a' и 'b', возвращая результат.
    
    Обратите внимание: функция работает с числовыми аргументами.
    :param a: первое слагаемое.
    :param b: второе слагаемое.
    :return: сумма 'a' и 'b'.
    
    >>> add(2, 3)
    5
    """
    return a + b

Используйте Sphinx для создания документации

Если ваш код снабжен ясными и хорошо оформленными докстроками, можно использовать инструменты, вроде Sphinx, чтобы сгенерировать из них структурированную и эстетически приятную документацию.

Адаптируйте длину докстрок под размер функций

Степень детализации докстрока должна зависеть от сложности функции: для объемных функций подойдут многострочные докстроки, в то время как для простых и интуитивно понятных функций достаточно однострочных.

Python
Скопировать код
def is_even(number):
    """Проверяет, является ли число четным."""
    return number % 2 == 0

Визуализация

Можно сравнить сочинение докстроков с прописыванием рецепта:

Markdown
Скопировать код
- **Название блюда**: суть вашего рецепта. 🍲
- **Ингредиенты**: необходимые ингредиенты. 🌿
- **Приготовление**: процесс приготовления блюда. 🔪
- **Подача на стол**: финальный результат. 🍽️

Подобное структурированное представление могут иметь и ваши функции в Python:

Python
Скопировать код
"""
Фрагмент докстроки:
Функция: fry_egg 🍳
Ингредиенты: яйцо (входной аргумент 1), масло (входной аргумент 2)
Принцип приготовления: смазать маслом сковороду и поджарить на ней яйцо.
Результат: отлично приготовленный завтрак.
"""

📗🥄 Ваша документация, как и любой рецепт, должна быть точной и оставлять минимум места для толкования!

Максимизация использования докстроков

Пользуйтесь интерактивной помощью

Качественно написанная докстрока позволит эффективно использовать встроенную функцию help() Python и избавить вас от лишних вопросов по работе этой функции.

Python
Скопировать код
help(multiply)

Уделяйте внимание чистоте кода

Загромождение функции вспомогательными комментариями (типа хэш pylint в духе # pylint: disable=) недопустимо. Стремитесь к чистоте кода!

Будьте ясными

Ваша функция должна быть весьма собой законченной и понятной. Явно указывайте требуемый контекст и предварительные условия работы функции.

Простота – ключ к успеху

ASCII-арт может использоваться в качестве оформления, но докстроки должны быть лаконичными, чистыми и легкими для чтения.

Философия написания докстроков

Общайтесь на языке пользователя

Будьте проводником по своему коду, акцентируйте внимание на общем поведении функции, а детали реализации оставляйте в коде.

Обращайте внимание на предположения

Если функция требует определенного начального состояния системы или зависит от внесенных в нее изменений, упомяните об этом.

Следуйте стандартам

Единый стиль документации крайне важен, особенно в крупных проектах. Отталкивайтесь от PEP 258, Sphinx и соглашений PyCharm для поддержания согласованности.

Полезные материалы

  1. PEP 257 – "Конвенции докстроков" (Docstring Conventions)официальные рекомендации по написанию докстроков на Python.
  2. Руководство Google по стилю Pythonсоветы от Google по оформлению комментариев и докстроков на Python.
  3. Sphinx reStructuredText Primer — отличное введение в синтаксис reStructuredText, широко применяемый в докстроках Python.
  4. Наполеон: Движение к более качественным докстрокамполезные инструменты для написания докстроков в стилях NumPy и Google.
  5. "Inspect" — инспекция и анализ кода Python — встроенный в Python инструмент для извлечения информации об объектах во время исполнения.
  6. "Functools" — функциональное программирование в Python — использование декоратора functools.wraps для расширения функциональности докстроков.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Что такое докстроки в Python?
1 / 5