Комментарий, дублирующий код

Пример того, как делать не надо:

add_to_list(books, extra_book) # добавим книгу в список

Этот комментарий # добавим книгу в список лишь пересказывает код. Всё то же самое можно узнать прочитав код: название функции add_to_list переводится как добавить в список, переменная booksкниги, а extra_bookдополнительная книга. Не сложно догадаться, что вызов функции добавляет книгу extra_book в список книг books.

Ещё пример. Комментарий снова дублирует код:

counter += 1;  # увеличиваем счётчик на 1

Лишние комментарии загромождают код, в нём становится сложнее ориентироваться. Когда меняешь код, то приходится менять и комментарии, а это двойная работа.

Комментарий пишут, чтобы сообщить что-то новое и важное.

Комментарии должны говорить то, что не может сказать сам код. Если комментарий можно заменить более удачным названием — сделайте это. Если комментарий поясняет сложное выражение — разбейте это выражение на части, введите промежуточные переменные с говорящими названиями.

Чем меньше комментариев требует ваш код – тем лучше.

Docstring, дублирующий код

Помимо дублирующих код комментариев бывают и такие же проблемные docstring. Вот пример встроенной документации, которая содержит не больше полезной информации, чем само объявление функции – её сигнатура:

def count_characters_in_string(string):
     """Считает количество символов в строке"""

Docstring также должны сообщать что-то полезное и новое. В противном случае избавьтесь от них.


Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.