Как закомментировать код в python

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

Комментирование важно для всех видов проектов, независимо от того, маленькие они, средние или довольно большие. Это важная часть вашего рабочего процесса, и считается хорошей практикой для разработчиков. Без комментариев все может запутаться, очень быстро. В этой статье мы расскажем о различных методах комментирования, поддерживаемых Python, и о том, как его можно использовать для автоматического создания документации для вашего кода с использованием так называемых строк документации уровня модуля.

Хорошие против плохих комментариев

Как бы ни были важны комментарии, все еще можно писать плохие комментарии. Они всегда должны быть короткими, прямолинейными и добавлять информативную ценность.

Например, это довольно бесполезный комментарий:

Следующий пример демонстрирует более полезный комментарий и дает переменным очевидные имена:

Существует бесконечное количество других сценариев, которые заслуживают комментариев. Это только один пример. Хорошее практическое правило — добавлять комментарии к любой строке кода (например, к списку) или к фрагменту кода, цель которого не очевидна. Это очень субъективно, и на самом деле это навык, который необходимо изучить.

Типы комментариев

Комментарий в Python начинается с символа хеша # и продолжается до конца физической строки. Однако хеш-символ внутри строкового значения не рассматривается как комментарий. Если быть точным, комментарий можно написать тремя способами — полностью в отдельной строке, рядом с оператором кода и в виде многострочного блока комментариев.

В следующих разделах я опишу каждый тип комментария.

Однострочные комментарии

Такой комментарий начинается с хеш-символа ( # ) и сопровождается текстом, который содержит дополнительные пояснения.

Вы также можете написать комментарий рядом с оператором кода. Следующий пример показывает, это:

Руководство по стилю для кода Python ( PEP8 ) рекомендует менее 79 символов на строку. На практике 70 или 72 символа в строке легче читать, и поэтому рекомендуется. Если ваш комментарий приближается к этой длине или превышает ее, тогда вы захотите распределить его по нескольким строкам.

Многострочные комментарии

Как уже упоминалось выше, весь блок комментариев также понимается Python. Эти комментарии служат встроенной документацией для других, читающих ваш код, и обычно объясняют вещи более подробно

Технически Python не имеет явной поддержки многострочных комментариев, поэтому некоторые варианты считаются обходным решением, но все же работают для многострочных комментариев.

Версия 1 объединяет однострочные комментарии следующим образом:

Версия 2 проще, чем версия 1. Изначально она предназначалась для создания документации (подробнее об этом ниже), но ее также можно использовать для многострочных комментариев.

Обратите внимание, что последняя версия должна быть заключена в специальные кавычки ( """ ) для работы, а не хеш-символы.

Обычная практика

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

Этот фрагмент взят из одного из примеров, которые я использую в учебных целях. Комментарий начинается с описания, за ним следует уведомление об авторских правах с моим именем и год публикации кода. Ниже вы увидите, что код лицензирован под GNU Public License ( GPL ). Для того, чтобы связаться со мной, мой адрес электронной почты также добавлен туда.

Читайте также:  Как написать письмо с уведомлением о прочтении

Комментарии документации

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

Строка документа — это либо однострочный, либо многострочный комментарий. В последнем случае первая строка является кратким описанием, а после первой строки следует пустая строка.

Начните строку документа с заглавной буквы и завершите ее точкой.

Это основной пример того, как это выглядит:

В интерактивной справочной системе Python строка документации становится доступной через атрибут __doc__ .

Существует ряд инструментов, которые автоматически генерируют документацию из строк документации, таких как Doxygen, PyDoc, pdoc и расширение autodoc для Sphinx. Мы объясним вам, как работать с ними в следующей статье.

Заключение

Написание правильных комментариев в вашем коде Python не так сложно, и вам просто нужна сила выносливости. Это помогает всем, кто пытается понять ваш код, включая вас самих, когда вы в следующий раз вернетесь к нему. Мы надеемся, что совет, который мы дали вам здесь, облегчит вам создание более качественных комментариев и документации в вашем коде.

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

Что такое комментарии и зачем они нужны?

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

Таким образом, комментарии представляют собой специальные текстовые строки, которые никоим образом не влияют на ход выполнения программы. При желании в них можно писать все что угодно, поскольку компилятор и интерпретатор не будут обращать на них внимание. Грамотное использование комментариев позволяет значительно улучшить понимание текста программы другими людьми во время работы над общим проектом. Кроме того, реализация подобных пояснений помогает их автору быстро разбираться в ранее написанном коде. Такая потребность часто возникает при необходимости улучшить или доработать программу.

Однострочные

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

Если запустить программу с этим кодом на выполнение, ничего не произойдет, поскольку, как уже было сказано ранее, комментарии полностью игнорируются компьютером. Писать пояснения можно не только на английском, но и на русском языке. Для русских комментариев в Python нужно подключить кодировку UTF-8 (Unicode Transformation Format, 8-bit). В противном случае, компилятор выдаст ошибку, не сумев правильно распознать символы кириллицы.

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

Создавая комментарии, необходимо принять во внимание тот факт, что символ решетки не задействуется по прямому назначению, если заключен в строковый литерал. В приведенном ниже фрагменте кода данный оператор является частью строки под названием string. Работая в IDE (Integrated Development Environment), можно увидеть, что комментарии автоматически выделяются курсивом и обладают особой подсветкой, облегчающей их распознавание.

Читайте также:  Как перекачать видео с ютуба на флешку

После ввода символа решетки, весь дальнейший текст будет считаться комментарием, вне зависимости от того, какие ключевые слова или операторы используются за ним.

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

Многострочные

Большинство высокоуровневых языков программирования поддерживают многострочные комментарии, которые помогают более подробно описывать детали реализации сложных для понимания блоков кода. Общепринятым синтаксисом для данной конструкции является слеш со звездочкой в начале выделенного блока (/*) и те же самые символы в обратном порядке в конце комментария (*/). Однако Python не поддерживает подобную возможность, вместо нее предлагая использовать совокупность нескольких однострочных комментариев.

Программа, приведенная выше, содержит набор однострочных комментариев, при помощи которых формируется в Python блок закомментированных пояснений к коду. Для тех, кто работает в простом редакторе кода или блокноте, такой подход покажется очень неудобным, так как при помощи символов решетки нельзя одновременно выделить и закомментировать несколько строчек программы, запретив тем самым их выполнение. Вместо этого приходится все комментировать по отдельности.

Однако современные IDE и редакторы кода, такие как PyCharm или NetBeans способны не только отображать синтаксис языка, но также поддерживают множество горячих клавиш для более быстрого написания программ. С их помощью можно моментально закомментировать огромный блок кода, а также оперативно избавиться от символов решетки в начале каждой строки. Это существенно ускоряет работу программиста и улучшает удобство тестирования.

Так, например, чтобы закомментировать несколько строк Python кода, в PyCharm, следует их выделить и нажать комбинацию клавиш + .

Docstring

Для создания документации к различным модулям, классам, функциям и методами в Python широко применяется такой инструмент как docstring. Согласно официальному соглашению PEP 8 (Python Enhancement Proposal), которое содержит в себе комплекс общепринятых норм по написанию кода, в Python docstring необходимо использовать в качестве поясняющей конструкции для всех создаваемых блоков кода. Такие примечания необходимо помещать сразу же после определения класса, метода, функции или модуля, заключая текст в тройные кавычки.

Данный пример демонстрирует работу функции greeting(), которая создает строку и выдает ее на экран. Здесь применяется конструкция docstring, сообщающая программисту основные сведения о вызываемом методе. В отличие от обычных комментариев, docstring, как правило, обрабатывается компилятором и помещается в полученный байт-код. Во время выполнения программы записанные ранее сведения можно вывести на экран с помощью метода __doc__.

В спецификации PEP 8 определены базовые рекомендации использования docstring. Согласно общепринятым нормам в комментариях к функциям Python, первая строка документации должна представлять собой лаконичную сводку о назначении объекта, начинаясь с прописной буквы и заканчиваясь точкой. Вторая строка обязана быть пустой, в то время как последующие абзацы могут содержать более подробное описание внутренних особенностей объекта, его характеристики, особенности вызова и сторонние эффекты.

Применение docstring в качестве комментария

Несмотря на отсутствие прямой возможности создавать в коде Python 3 многострочные комментарии, язык Python позволяет использовать инструмент docstring для их замены. Сделать это можно при помощи тройных кавычек, просто поместив в них нужный текст. Таким образом, создается многострочный литерал, который не принадлежит какому-либо объекту, а поэтому не играет никакой роли во время обработки программного кода компилятором. Следующий пример демонстрирует применение docstring в качестве многострочного примечания в коде.

Несмотря на простоту такого подхода, пользоваться им не рекомендуется, так как основным назначением docstring является документирование объектов.

Именно по этой причине всегда лучше пользоваться символами решетки, комментируя большие объемы кода с помощью горячих клавиш IDE.

Читайте также:  Как подключить тюнер на телевизор

Заключение

Комментарии в языке программирования Python используются для создания собственных пояснений к исходному коду программы. Это позволяет улучшить его понимание другими людьми в процессе командной работы над большими проектами. В языке предусмотрены только однострочные комментарии, однако при помощи текстовых блоков можно получить аналог многострочных комментариев. Для создания документации к отдельным функциям, методам, классам и модулям применяются конструкции docstring. Общепринятые правила документирования исходного кода подробно описаны в сборнике рекомендаций PEP 8.

В Python, для однострочных комментариев используется символ # . Но если нужно закомментировать большой блок кода, то приходится приписывать # в начале каждой строки. Это очень неудобно при отладке.

Есть ли какая-то возможность использовать многострочные комментарии (аналог /* . */ из Си) в Python?

UPD:

Знаю, что различные IDE позволяют делать такие вещи автоматически, но хотелось бы более элегантного решения, не зависящего от средства редактирования кода и различных утилит.

5 Answers

В PyCharm можно выделить блок который нужно закомментировать и нажать Ctrl+/
PyCharm в начале каждой строки поставит ‘#’
Если нужно будет раскоментировать нужно опять же нажать Ctrl+/ и ‘#’ уберутся!
Очень удобно!

Руководство по стилю кода (pep-8) рекомендует использовать # для блочных комментариев.

Но если нужно закомментировать большой блок кода, то приходится приписывать # в начале каждой строки. Это очень неудобно при отладке.

Один из явных признаков неумелого программирования — это наличие закомментированных фрагментов кода. Используйте систему контроля версий и/или ваше IDE, чтобы временно убрать/закомментировать код при отладке. Настройте ваше окружение, чтобы вы могли это делать не задумываясь, нажимая пару клавиш.

Знаю, что различные IDE позволяют делать такие вещи автоматически, но хотелось бы более элегантного решения, не зависящего от средства редактирования кода и различных утилит.

Закомментированный код не должен добавляться в систему контроля версий, поэтому для временных изменений, которые не переживут одну сессию редактирования кода, один клавишный аккорд (например, M-; в Emacs), как правило, достаточен, чтобы закомментировать/раскомментировать кусок кода.

"""multiline string literal""" не является многострочным комментарием в Питоне. Это просто строковая константа, которая позволяет использовать буквальные символы новой строки без экранирования (такого как
). Часто используется для описаний модулей, классов, функций/методов прямо в коде:

Попытка использовать """""" в качестве многострочного комментария сломается на первой docstring, даже если бы не было других более подходящий решений для данной задачи.

Насколько мне известно, отдельного синтаксиса для многострочных комментариев в Python нет. В тоже время, можно использовать строковые литералы, заключенные в тройные апострофы, например так:

Строковые литералы, заключенные в тройные кавычки, могут содержать:

  • кавычки ( " )
  • апострофы ( ‘ )
  • docstring комментарии ( """func desc""" )
  • переводы строк

В тоже время, стоит помнить, что такой строковый литерал не должен содержать внутри символов »’ . Это требование аналогично запрету на последовательность символов */ внутри многострочного комментария Си.

Кстати, этот же хак, предлагает использовать создатель языка Python в одном из своих твитов.

В тоже время, как верно отметил @jfs, руководство по стилю кода (pep-8) рекомендует использовать # для блочных комментариев.

Почти все редакторы умеют выделять текст столбцом.

В большинстве из них это делается при помощи Alt+Shift+Стрелка, в редакторах на основе Idea используется переключение по Alt+Shift+Insert между обычным и колоночным режимами.

Я всегда, когда комментирую код, использую однострочные комментарии, выделив нужную группу строк. Это удобно, поскольку во-первых, факт закомментированности не зависит от наличия комментариев в комментируемом коде, а во-вторых, сразу чётко видно единый закомментированный участок кода (при комментировании кнопкой комментария IDE игнорируют пустые строки).

PS: Если код комментируется для долгосрочных целей, то ставлю 4 слеша вместо двух.

Adblock
detector