Страницы

Поиск по вопросам

среда, 27 ноября 2019 г.

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

#python


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

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

UPD:

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


Ответы

Ответ 1



Насколько мне известно, отдельного синтаксиса для многострочных комментариев в Python нет. В тоже время, можно использовать строковые литералы, заключенные в тройные апострофы, например так: ''' Это строковый литерал. Но здесь он используется как многострочный комментарий ''' Строковые литералы, заключенные в тройные кавычки, могут содержать: кавычки (") апострофы (') docstring комментарии ("""func desc""") переводы строк В тоже время, стоит помнить, что такой строковый литерал не должен содержать внутри символов '''. Это требование аналогично запрету на последовательность символов */ внутри многострочного комментария Си. Кстати, этот же хак, предлагает использовать создатель языка Python в одном из своих твитов. В тоже время, как верно отметил @jfs, руководство по стилю кода (pep-8) рекомендует использовать # для блочных комментариев.

Ответ 2



Руководство по стилю кода (pep-8) рекомендует использовать # для блочных комментариев. Но если нужно закомментировать большой блок кода, то приходится приписывать # в начале каждой строки. Это очень неудобно при отладке. Один из явных признаков неумелого программирования -- это наличие закомментированных фрагментов кода. Используйте систему контроля версий и/или ваше IDE, чтобы временно убрать/закомментировать код при отладке. Настройте ваше окружение, чтобы вы могли это делать не задумываясь, нажимая пару клавиш. Знаю, что различные IDE позволяют делать такие вещи автоматически, но хотелось бы более элегантного решения, не зависящего от средства редактирования кода и различных утилит. Закомментированный код не должен добавляться в систему контроля версий, поэтому для временных изменений, которые не переживут одну сессию редактирования кода, один клавишный аккорд (например, M-; в Emacs), как правило, достаточен, чтобы закомментировать/раскомментировать кусок кода. """multiline string literal""" не является многострочным комментарием в Питоне. Это просто строковая константа, которая позволяет использовать буквальные символы новой строки без экранирования (такого как \n). Часто используется для описаний модулей, классов, функций/методов прямо в коде: >>> def f(): ... """abc""" ... >>> f.__doc__ 'abc' Попытка использовать """""" в качестве многострочного комментария сломается на первой docstring, даже если бы не было других более подходящий решений для данной задачи.

Ответ 3



Почти все редакторы умеют выделять текст столбцом. В большинстве из них это делается при помощи Alt+Shift+Стрелка, в редакторах на основе Idea используется переключение по Alt+Shift+Insert между обычным и колоночным режимами. Я всегда, когда комментирую код, использую однострочные комментарии, выделив нужную группу строк. Это удобно, поскольку во-первых, факт закомментированности не зависит от наличия комментариев в комментируемом коде, а во-вторых, сразу чётко видно единый закомментированный участок кода (при комментировании кнопкой комментария IDE игнорируют пустые строки). PS: Если код комментируется для долгосрочных целей, то ставлю 4 слеша вместо двух.

Ответ 4



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

Ответ 5



Многострочные комментарии в python только с помощью """ (три кавычки)

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

Отправить комментарий