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

Меня очень раздражает, что в Пайтоне нет многострочных комментариев. И не говорите, что комментарии можно сделать тройными кавычками (или апострофами), это неудобно. Во-первых, тройные кавычки — не комментарий, а многосточная строка (это ремарка для тех, кто не знает Пайтон), поэтому начинать её приходится на том же уровне, что и текущий код.

Во-вторых, попробуйте в большом списке (list) закомментривать большой кусок. Тройные кавычки тут не подойдут:

mylist = [\
'раз',
'два',
"""'три',
'четыре',"""
'пять'
]

Всем очевидно почему не подойдут? Я не понимаю почему до сих пор в языке нет многострочных комментариев.

Комментарии 20

besisland.livejournal.com № 1
А зачем они нужны?

Вертикальный ряд октоторпов выглядит симпатично, а для комментирования и раскомментирования большого блока редактор исходного кода должен предоставлять шоткаты.
Евгений Степанищев (bolknote.ru) автор № 2
Они нужны для того, чтобы комментировать большой кусок кода. Специализированный редактор для Python, наверное, должен. А когда заходишь по SSH на чужую машину и правишь там код через vim, то как мне поступать?

Кроме того, я не пользуюсь специализированными IDE, пишу всё в FAR.
besisland.livejournal.com № 3
Править в vim по SSH код на чужой машине мне видится не очень правильным подходом.

Что же касается использования редактора, не имеющего жизненно важных функций, то предъявлять в связи с этим претензии к языку — всё равно что использовать редактор без подсветки синтаксиса и заявлять, что разработчики языка должны были бы на этот случай требовать написание ключевых слов в верхнем регистре.
Евгений Степанищев (bolknote.ru) автор № 6
Комментарий для besisland.livejournal.com:

Правильным или нет, такова жизнь.

Я программирую на нескольких языках и мне неудобно пользоваться специализированными IDE. Вторая причина, по которой мне неудобны IDE — скорость. Мне не комфортно. Кроме того, я не считаю функцию группового комментирования жизненно важной.

Т.е. авторы языка какбэ закладывались на то, что на их языке будут программировать только в специализированных IDE?
crazy-coder.livejournal.com № 9
Блочные комментарии в VIM? Да запросто, out-of-a-box =)

Встаем в начало строки.
Ctrl+V (*NIX, под Win32 — Ctrl+Q), давим стрелку вниз, сколько требуется.
Shift+i
#
Esc
jankkhvej.blogspot.com № 11
Я программирую на нескольких языках и мне неудобно пользоваться специализированными IDE.

А как же Eclipse? Не пробовали или не поравился? Опять же, чудесно можно монтировать удалённые файловые системы по ssh, и редактировать там файлы будто они локальные.

Да, и ещё — считаю в корне неправильным исправление файлов с кодом удалённо, надо исправить их локально, отладить, сделать коммит, зайти по ссш куда надо, и сделать апдейт.

Евгений Степанищев (bolknote.ru) автор № 12
Eclipse пробовал, не понравилось.

Ну мало ли что неправильно :) Иногда необходимо срочно сделать фикс. Обычная у нас процедура довольно длительная: смотри на dev-машине, коммит, сборка пакеты, выкладка на предпродакшн, выкладка в продакшн. Где-то на какой-то стадии могут быть тесты.
kildor (kildor.ya.ru) № 13
Комментарий для Евгения Степанищева:

Для фара есть mblockedit, truetemplates, ещё пара плагинов.
Евгений Степанищев (bolknote.ru) автор № 14
Спасибо!

Но это всё равно не отвечает на вопрос почему же в Python нет блочных комментов.
astur (astur.net.ru) № 15
В Python нет блочных комментариев потому, что это снизит читаемость кода. Такая вот субъективная реальность. В С, например, если читаешь код в обычном редакторе без подсветки, то чтобы определить, живая строчка, или нет, надо мотать глазами наверх, отыскивая «/*», который может быть чуть ли не в середине сложной строки. Python, с его отступами, помешан на читаемости, так что блочные комментарии в нём пойдут против основной идеологии.

Вообще, меня это тоже иногда бесит. Когда свой код пишу. А когда чужой читаю — только радует :)
Евгений Степанищев (bolknote.ru) автор № 17
О! Спасибо, хорошее объяснение. Плохо только, что отсутствие блочных комментов не решило эту проблему, поскольку есть хак: использовать тройные кавычки/апострофы вместо блочных комментов. Так что отмена блочных комментов проблемы не решило, увы.
besisland.livejournal.com № 16
Комментарий для Евгения Степанищева:

Идами я тоже пользоваться не люблю. А говорю вместо того о простом редакторе кода, имеющем базовые, необходимые возможности вроде подсветки синтаксиса или быстрого комментирования/раскомментирования.
astur (astur.net.ru) № 18
Комментарий для Евгения Степанищева:

тройные кавычки — это не совсем хак. Это либо докстринг (когда на своём месте), либо тупое дураццкое ламерство, которое ты классно опустил своим примером.

Вообще, вокруг любого языка есть люди, которым проще всё опошлить «хаками», чем понять особенность языка. Страшно подумать, тот же perl замышлялся, как удобная, легко читаемая альтернатива (тм) для связки bash+sed+awk, а вовсе не как головоломка для гиков. Больше скажу, php замышлялся, как система построения html-шаблонов, что-то вроде Smarty :)
Евгений Степанищев (bolknote.ru) автор № 19
Комментарий для astur.net.ru:

Ну вот реальность такова, что тройными кавычками пользуются как многострочными комментами, а это порождает новые проблемы.
astur (astur.net.ru) № 20
Комментарий для Евгения Степанищева:

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