Почему в Python нет многострочных комментариев? - PullRequest
232 голосов
/ 29 декабря 2008

ОК, я знаю, что строки в тройных кавычках могут служить многострочными комментариями. Например,

"""Hello, I am a 
   multiline comment"""

и

'''Hello, I am a 
   multiline comment'''

Но с технической точки зрения это строки, верно?

Я погуглил и прочитал руководство по стилю Python, но не смог найти технического ответа на вопрос, почему не существует формальной реализации многострочных комментариев типа / * * / У меня нет проблем с использованием тройных кавычек, но мне немного любопытно, что привело к этому дизайнерскому решению.

Ответы [ 16 ]

0 голосов
/ 04 октября 2013

Многострочные комментарии с использованием IDLE on:

  • Mac OS X , после выбора кода закомментируйте блок кода с помощью Ctrl + 3 и раскомментируйте с помощью Ctrl + 4 .

  • Windows , после выбора кода, закомментируйте блок кода с помощью Ctrl + Alt + 3 и раскомментируйте с помощью Ctrl + At + 4 .

0 голосов
/ 19 июня 2011

Я помню, как читал об одном парне, который поместил бы его многострочные комментарии в тройную кавычку:

x = '''
This is my
super-long mega-comment.
Wow there are a lot of lines
going on here!
'''

Это занимает немного памяти, но дает вам возможность многострочных комментариев, и плюс большинство редакторов выделят синтаксис для вас:)

Также легко закомментировать код, просто обернув его в

x = '''

и

'''
0 голосов
/ 29 декабря 2008

Кроме того, многострочные комментарии - сука . Извините, но независимо от языка я не использую их ни для чего другого, кроме как для отладки. Скажем, у вас есть такой код:

void someFunction()
{
    Something
    /*Some comments*/
    Something else
}

Затем вы обнаружите, что в вашем коде есть что-то, что вы не можете исправить с помощью отладчика, поэтому вы начинаете вручную отлаживать его, комментируя все меньшие и меньшие куски кода с помощью этих многострочных комментариев. Это тогда дало бы функцию:

void someFunction()
{ /*
    Something
   /* Comments */
   Something more*/
}

Это действительно раздражает.

0 голосов
/ 29 декабря 2008

Поскольку соглашение # является распространенным, и на самом деле ничего нельзя сделать с многострочным комментарием, чего нельзя сделать с комментарием # -sign. Это историческая случайность, подобная происхождению /* ... */ комментариев, восходящих к PL / I,

0 голосов
/ 29 декабря 2008

Это всего лишь предположение .. но

Поскольку они являются строками, они имеют определенную семантическую ценность (компилятор от них не избавляется), поэтому имеет смысл использовать их в качестве строк документации. Они фактически становятся частью AST , поэтому извлечение документации становится проще.

0 голосов
/ 29 декабря 2008

Предположим, что они просто считались ненужными. Так как просто набрать #a comment, многострочные комментарии могут состоять из множества однострочных комментариев.

Для HTML , с другой стороны, больше необходим мультилинер. Сложнее набирать <!--comments like this-->.

...