Хорошо, я знаю, что строки в тройных кавычках могут служить многострочными комментариями. Например,
"""Hello, I am a
multiline comment"""
и
'''Hello, I am a
multiline comment'''
Но с технической точки зрения это строки, верно?
Я погуглил и прочитал руководство по стилю Python, но не смог найти технического ответа на вопрос, почему нет формальной реализации многострочных комментариев типа / * * /. У меня нет проблем с использованием тройных кавычек, но мне немного любопытно, что привело к этому дизайнерскому решению.
if False:
кодОтветы:
Я сомневаюсь, что вы получите лучший ответ, чем «Гвидо не чувствовал необходимости в многострочных комментариях».
Гвидо написал в твиттере об этом:
источник
if False:
код, который необходимо отключить.if False
лучше. Он выполняет то же самое, но менее ясно (поскольку на первый взгляд не так очевидно, что блок кода отключен).Многострочные комментарии легко ломаются. Что делать, если у вас есть следующее в простой программе калькулятора?
Попробуйте прокомментировать это многострочным комментарием:
К сожалению, ваша строка содержит разделитель конечного комментария.
источник
#:
и использовать отступ, чтобы показать, когда комментарий закончится. Он чистый, последовательный и отлично справляется с вложенностью.Текст в тройных кавычках НЕ должен рассматриваться как многострочный комментарий; условно, это строки документов . Они должны описывать, что делает ваш код и как его использовать, но не для таких вещей, как комментирование блоков кода.
Согласно Гвидо, многострочные комментарии в Python - это просто непрерывные однострочные комментарии (поиск по «блочным комментариям»).
Чтобы комментировать блоки кода, я иногда использую следующий шаблон:
источник
V}>>
Это, вероятно, восходит к основной концепции, что должен быть один очевидный способ выполнить задачу. Дополнительные стили комментариев добавляют ненужные сложности и могут снизить читабельность.
источник
#
.Ну, тройные кавычки используются как многострочные комментарии в строках документов. И # комментарии используются как встроенные комментарии, и люди привыкли к этому.
Большинство языков сценариев также не имеют многострочных комментариев. Может в этом причина?
См. PEP 0008 , раздел Комментарии
И посмотрите, предлагает ли ваш редактор Python комбинацию клавиш для комментирования блоков. Emacs поддерживает его, как и Eclipse, предположительно большинство приличных IDE.
источник
Из дзен питона :
Должен быть один - и желательно только один - очевидный способ сделать это.
источник
Лично мой стиль комментария, скажем, в Java похож на
Так что наличие однострочных комментариев не так уж плохо, если ваш стиль типичен для предыдущего примера, потому что для сравнения вы бы имели
VB.NET также является языком с однострочными комментариями, и лично я нахожу это раздражающим, поскольку комментарии в конечном итоге выглядят менее похожими на комментарии и больше похожими на какую-то цитату
В однострочных комментариях меньше использования символов, чем в многострочных комментариях, и с меньшей вероятностью они будут избегаться некоторыми хитрыми символами в выражении регулярного выражения? Я склонен согласиться с Недом, хотя.
источник
Чтобы закомментировать блок кода в IDE Pycharm :
источник
Для этого используйте блок комментариев или выполните поиск и замену (s / ^ / # / g) в вашем редакторе.
источник
Я решил эту проблему, загрузив макрос для моего текстового редактора (TextPad), который позволяет мне выделять строки, а затем вставляет # в начале каждой строки. Подобный макрос удаляет #. Некоторые могут спросить, почему многострочный необходим, но это удобно, когда вы пытаетесь «отключить» блок кода для целей отладки.
источник
Для тех, кто ищет многострочные комментарии в Python - использование формата тройных кавычек может иметь некоторые проблематичные последствия, поскольку я только что научился трудному пути. Учти это:
Многострочный комментарий будет заправлен в следующую строку, путая
'species'
ключ. Лучше просто использовать#
для комментариев.источник
Поскольку соглашение # является распространенным, и на самом деле вы не можете ничего сделать с многострочным комментарием, чего нельзя с комментарием # -sign. Это историческая случайность, подобно происхождению
/* ... */
комментариев к PL / I,источник
Предположим, что они просто считались ненужными. Так как просто набрать
#a comment
текст, многострочные комментарии могут состоять из множества однострочных комментариев.Для HTML , с другой стороны, больше нужны мультилинеры. Труднее продолжать печатать
<!--comments like this-->
.источник
Это всего лишь предположение .. но
Поскольку они являются строками, они имеют определенную семантическую ценность (компилятор от них не избавляется), поэтому имеет смысл использовать их в качестве строк документации. Они фактически становятся частью AST , поэтому извлечение документации становится проще.
источник
Кроме того, многострочные комментарии - сука . Извините, но независимо от языка я не использую их ни для чего другого, кроме как для отладки. Скажем, у вас есть такой код:
Затем вы обнаруживаете, что в вашем коде есть что-то, что вы не можете исправить с помощью отладчика, поэтому вы начинаете отладку вручную, комментируя все меньшие и меньшие куски кода с помощью этих многострочных комментариев. Это тогда дало бы функцию:
Это действительно раздражает.
источник
/*
комментариев в стиле.Многострочные комментарии с использованием IDLE на:
Mac OS X , после выбора кода, закомментируйте блок кода с помощью Ctrl+ 3и раскомментируйте с помощью Ctrl+ 4.
В Windows после выбора кода закомментируйте блок кода с помощью Ctrl+ Alt+ 3и раскомментируйте с помощью Ctrl+ At+ 4.
источник
Я помню, как читал об одном парне, который поместил бы его многострочные комментарии в тройную кавычку:
Это занимает немного памяти, но дает вам возможность многострочных комментариев, и плюс большинство редакторов выделят синтаксис для вас :)
Также легко закомментировать код, просто обернув его
и
источник
x =
и это не займет никакой памяти.