- Комментарии в Python: как закомментировать блок кода
- Когда нужно использовать комментарии в Python
- Как (за)комментировать код на Python
- Как делать многострочные комментарии в Python
- Заключение
- Многострочные комментарии в Python
- Вариант 1: последовательные однострочные комментарии
- Вариант 2: использование многострочных строк вместо комментариев
- Выводы
- Однострочные и многострочные комментарии в Python
- Однострочные комментарии
- Многострочные комментарии
Комментарии в Python: как закомментировать блок кода
В этой статье мы расскажем о комментариях в Python. Разберемся, зачем они нужны и как их использовать.
Когда нужно использовать комментарии в Python
Давайте разберем два самых общих случая использования комментариев в коде. В принципе, это касается не только Python, но и любого другого языка программирования.
Итак, комментарии нужны, чтобы:
- Предотвратить выполнение кода. Иногда вам нужно сделать так, чтобы часть написанного кода не выполнялась. Возможно, она не нужна вам именно в этот момент, но вы планируете использовать ее в дальнейшем. В таком случае эту часть кода можно «закомментировать», т. е. оформить как комментарий.
- Улучшить читаемость. Это очень важно, и не только для нас самих, но и для других разработчиков. При помощи комментариев мы можем объяснить, что делает каждый блок кода. Когда другие разработчики будут читать наш код, благодаря комментариям им будет легко понять, для чего предназначена каждая его часть.
Как (за)комментировать код на Python
В разных языках программирования синтаксис комментариев тоже разный. В Python комментарии начинаются с символа #. Вот пример:
# Код, расположенный ниже, выводит в консоль фразу Hello World! print("Hello World!")
В этом коде я использовал комментарий для пояснения, что делает код. Когда этот код выполняется, интерпретатор игнорирует комментарий и запускает функцию print() .
Мы также можем закомментировать собственно сам код:
# print("Hello World!") print("Happy coding!")
При запуске этого кода будет интерпретироваться только вторая строка.
Комментарии не всегда располагаются над строкой кода, к которой они относятся. Вы можете вставлять их в саму строку:
print("Hello world") # Выводит Hello World
Как делать многострочные комментарии в Python
В отличие от других языков программирования, в Python нет встроенного синтаксиса для создания многострочных комментариев.
К счастью, есть два способа обойти эту проблему. Первый:
# При запуске этого кода # вы видите Hello World! # в консоли. print("Hello world")
Мы можем разделять комментарий на строки, помещая при этом символ # в начале каждой строки.
В следующем примере для размещения комментария мы используем многострочные строки (multi-line strings). Они начинаются и заканчиваются тремя кавычками (сами кавычки могут быть как двойными, так и одинарными).
""" При запуске этого кода вы видите Hello World! в консоли. """ print("Hello World!")
При использовании многострочных строк без присвоения строки в качестве значения переменной эта часть кода игнорируется.
Примечание: важно не забывать об отступах. Если сделаете неправильный отступ перед первым блоком кавычек, получите SyntaxError.
Заключение
Итак, в этой статье мы разобрали, как могут использоваться комментарии в Python, а также рассмотрели их синтаксис. Теперь у вас не должно возникнуть проблем с комментированием кода.
Многострочные комментарии в Python
Поддерживает ли Python многострочные комментарии так, как это реализовано в других языках? Какие варианты написания блочных комментариев в Python?
В большинстве языков программирования присутствует синтаксис для блочных комментариев, которые охватывают несколько строк текста, например C или Java:
/* Блочный комментарий. Охватывает несколько строк. */ int answer = 42;
Есть ли в Python аналогичные многострочные комментарии? Короткий ответ: нет, по крайней мере, не совсем точно так же.
Python использует различные соглашения и синтаксис для блочных комментариев, которые охватывают несколько строк. В этой статье будут показаны некоторые варианты создания многострочных комментариев в Python.
Вариант 1: последовательные однострочные комментарии
Первым вариантом для комментирования нескольких строк кода в Python является простое использование # однострочного комментария для каждой строки:
# Это «блочный комментарий» в Python, сделанный # из нескольких однострочных комментариев. answer = 42
Большинство проектов Python следуют этому стилю, а руководство по стилю написания кода PEP 8 Python также рекомендует использовать повторяющиеся однострочные комментарии. Поэтому в большинстве случаях рекомендуется использовать их. Это также единственный способ написать «реальных» блочных комментариев в Python, которые игнорируется парсером.
Т.к. Python не поддерживает истинные многострочные комментарии, то для того чтобы закомментировать несколько строк кода требуется больше усилий. Приведём ряд полезных советов по ускорения работы с ними. У большинства редакторов кода есть шорткаты для блочных комментариев. Например, в Sublime Text достаточно просто выбирать пару строк, используя shift и клавиши курсора (или мышь), а затем нажимать cmd + /, чтобы закомментировать их все сразу.
Это даже работает в обратном порядке, то есть можно выбрать блок однострочных комментариев, и когда набирается клавиатурный шорткат cmd + /, весь блок снова раскомментируется.
Другие редакторы тоже поддерживают такую возможность: Atom, VS Code и даже Notepad++ имеют встроенные шорткаты для блочного комментирования в Python. Управление комментариями Python вручную – это неблагодарная работа, поэтому такая функция редактора может сэкономить много времени.
Вариант 2: использование многострочных строк вместо комментариев
Ещё одним вариантом для написания «правильных» многострочных комментариев в Python является использование многострочных строк с синтаксисом «»» (три кавычки). Например:
""" Блок комментариев в Python, сделанный из многострочной строковой константы. """ answer = 42
Можно использовать тройные кавычки для создания чего-то, что напоминает многострочный комментарий в Python. Необходимо убедиться, что правильно ввели «»», иначе будет получено исключение SyntaxError. Например, если нужно определить блочный комментарий внутри функции с помощью такого синтаксиса, то должны выполнить это следующим образом:
def add_stuff(a, b): result = a + b """ Теперь возвращается результат. Ещё один пример многострочного комментария. """ return result
Имейте в виду, что данный метод не создает «истинных» комментариев. Он просто вставляет текстовую константу, которая ничего не делает. Это то же самое, что вставить правильную однострочную строку где-то в коде и никогда не обращаться к ней.
Тем не менее, такая потерянная строковая константа не будет отображаться в байт-коде, фактически превращая её в многострочный комментарий. Далее доказательство того, что неиспользуемая строка не будет отображаться в дизассемблированном байт-коде CPython:
>>> import dis >>> dis.dis(add_stuff) 2 0 LOAD_FAST 0 (a) 2 LOAD_FAST 1 (b) 4 BINARY_ADD 6 STORE_FAST 2 (result) 8 8 LOAD_FAST 2 (result) 10 RETURN_VALUE
Однако будьте осторожны, когда помещаете такие «комментарии» в код. Если строка следует сразу после сигнатуры функции, определения класса или в начале модуля, она превращается в docstring, которая имеет совсем другое значение в Python:
def add_stuff(a, b): """ Это теперь связанная с docstring функция с объектом функции и доступным как метаданные времени выполнения. """ result = a + b return result
Docstrings («строки документации») позволяют сопоставлять удобочитаемую документацию с модулями, функциями, классами и методами Python. Они отличаются от комментариев исходного кода.
Комментарий удаляется парсером, тогда как docstring встраивается в байт-код и ассоциируется с документированием объекта. Её можно даже запросить к программному объекту во время выполнения.
Как это было сказано ранее, единственный способ получить «истинные» многострочные комментарии в Python, которые игнорируются парсером, заключается в использовании нескольких комментариев # для каждой однострочной строки.
Но в некоторых случаях использование тройных кавычек, может быть правильным выбором. Старайтесь избежать их использования в готовом к продашену коде.
Выводы
- В отличие от других языков программирования Python не поддерживает многострочные комментарии из коробки.
- Рекомендуемый способ закомментировать несколько строк кода в Python — использовать последовательные # однострочные комментарии. Это единственный способ получить «истинные» комментарии в исходном коде, которые удаляются парсером Python.
- Вы можете использовать строки с тремя кавычками «»», чтобы создать что-то похожее на многострочные комментарии в Python, но это не идеальный метод, и такие могут превратиться в случайные docstrings.
Однострочные и многострочные комментарии в Python
Комментарии — это пояснения к исходному тексту программы. Это может быть описание работы какого-то класса, функции или, например, значение переменной.
Чтобы ваш код был легко читаемым другими людьми, нужно придумывать очевидные имена, правильно подбирать названия функциям и правильно организовывать свой код.
Комментарии — это еще один способ сделать ваш код более читабельным. Они могут помочь не только другим людям читать и понимать ваш код, но и вам самим. Бывают ситуации, когда вы быстро пишете какой-то код, не комментируя ни строчки.
Разработчики часто забывают, как работает их собственный код. Особенно если он был написан давно.
Комментарии — это отличный способ быстро вспомнить свой код, написанный ранее.
Хороший комментарии должны быть:
- Уместными — не стоит указывать в комментариях очевидные вещи. К примеру, если вы назвали функцию print_black_list() , не нужно писать к ней комментарий # печать черного списка.
- Содержательными — должны четко описывать проблему, не должно возникнуть никаких запинок по поводу их понимания.
- Короткими — не нужно писать сочинение в комментариях.
- Актуальными — одна из проблем комментариев это их сопровождение. Код меняется, а обновлять комментарии часто забывают. Чем старше ваш комментарий, тем больше вероятность, что он лжет.
Плохой комментарий описывает код, отвечая на вопрос «что делает код?». Хороший комментарий отвечает на вопрос «зачем этот код?».
О том, как правильно писать комментарии, отлично написано в книге Роберта Мартина » Чистый код «, в главе 4 «Комментарии».
PEP 8 рекомендует использовать максимум 72 символа для комментариев на одной строке. Если ваш комментарий выходит за рамки 72 символов, его рекомендуется разделить на несколько строк.
О том, как создавать однострочные и многострочные комментарии в Python, разберем ниже.
Однострочные комментарии
Чтобы написать однострочный комментарий в Python, достаточно поставить » # » перед комментарием:
# Это однострочный комментарий print(«python») # Это тоже однострочный комментарий
Python будет считать комментарием все, что находится после «#» и до конца строки.
Многострочные комментарии
Во многих языках программирования (например С++, Go, Java, JavaScript) можно создавать многострочные комментарии конструкцией вида /* */ В Python нет возможности создавать многострочные комментарии, и такая конструкция не сработает. Однако есть альтернативные решения.
Вариант #1 — писать однострочные комментарии друг за другом:
def multiline_comment_example(): # Это многострочный комментарий, оформленный # в виде однострочных комментариев, следующих # друг за другом
Вариант #2 — заключить комментарий в тройные кавычки:
«»» Это многострочный комментарий, созданный с помощью тройных кавычек «»»
Второй вариант более удобен, но есть несколько нюансов, о которых нужно помнить.
- На самом деле это строка, которая не назначена какой-либо переменной. Эта строка не вызывается и ни на что не ссылается, поэтому может быть использована как многострочный комментарий.
- Если разместить такой комментарий сразу после определения функции или метода, Python будет считать его фрагментом документации, связанного с данной функцией/методом.
Многострочные комментарии, размещенные в определенных частях кода (например в самом начале модуля или сразу после объявления функции) могут служить документацией.