Перейти к содержимому

Как закомментировать область в python

  • автор:

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

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

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

UPD:

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

Насколько мне известно, отдельного синтаксиса для многострочных комментариев в Python нет. В тоже время, можно использовать строковые литералы, заключенные в тройные апострофы, например так:

Строковые литералы, заключенные в тройные кавычки, могут содержать:

  • кавычки ( » )
  • апострофы ( ‘ )
  • docstring комментарии ( «»»func desc»»» )
  • переводы строк

В тоже время, стоит помнить, что такой строковый литерал не должен содержать внутри символов »’ . Это требование аналогично запрету на последовательность символов */ внутри многострочного комментария Си.

Кстати, этот же хак, предлагает использовать создатель языка Python в одном из своих твитов.

В тоже время, как верно отметил @jfs, руководство по стилю кода (pep-8) рекомендует использовать # для блочных комментариев.

Руководство по стилю кода (pep-8) рекомендует использовать # для блочных комментариев.

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

Один из явных признаков неумелого программирования — это наличие закомментированных фрагментов кода. Используйте систему контроля версий и/или ваше IDE, чтобы временно убрать/закомментировать код при отладке. Настройте ваше окружение, чтобы вы могли это делать не задумываясь, нажимая пару клавиш.

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

Закомментированный код не должен добавляться в систему контроля версий, поэтому для временных изменений, которые не переживут одну сессию редактирования кода, один клавишный аккорд (например, M-; в Emacs), как правило, достаточен, чтобы закомментировать/раскомментировать кусок кода.

«»»multiline string literal»»» не является многострочным комментарием в Питоне. Это просто строковая константа, которая позволяет использовать буквальные символы новой строки без экранирования (такого как \n ). Часто используется для описаний модулей, классов, функций/методов прямо в коде:

Попытка использовать «»»»»» в качестве многострочного комментария сломается на первой docstring, даже если бы не было других более подходящий решений для данной задачи.

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

Поддерживает ли Python многострочные комментарии так, как это реализовано в других языках? Какие варианты написания блочных комментариев в Python?

В большинстве языков программирования присутствует синтаксис для блочных комментариев, которые охватывают несколько строк текста, например C или Java:

Есть ли в Python аналогичные многострочные комментарии? Короткий ответ: нет, по крайней мере, не совсем точно так же.

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

Вариант 1: последовательные однострочные комментарии

Первым вариантом для комментирования нескольких строк кода в Python является простое использование # однострочного комментария для каждой строки:

Большинство проектов Python следуют этому стилю, а руководство по стилю написания кода PEP 8 Python также рекомендует использовать повторяющиеся однострочные комментарии. Поэтому в большинстве случаях рекомендуется использовать их. Это также единственный способ написать «реальных» блочных комментариев в Python, которые игнорируется парсером.

Т.к. Python не поддерживает истинные многострочные комментарии, то для того чтобы закомментировать несколько строк кода требуется больше усилий. Приведём ряд полезных советов по ускорения работы с ними. У большинства редакторов кода есть шорткаты для блочных комментариев. Например, в Sublime Text достаточно просто выбирать пару строк, используя shift и клавиши курсора (или мышь), а затем нажимать cmd + /, чтобы закомментировать их все сразу.

Это даже работает в обратном порядке, то есть можно выбрать блок однострочных комментариев, и когда набирается клавиатурный шорткат cmd + /, весь блок снова раскомментируется.

Другие редакторы тоже поддерживают такую возможность: Atom, VS Code и даже Notepad++ имеют встроенные шорткаты для блочного комментирования в Python. Управление комментариями Python вручную – это неблагодарная работа, поэтому такая функция редактора может сэкономить много времени.

Вариант 2: использование многострочных строк вместо комментариев

Ещё одним вариантом для написания «правильных» многострочных комментариев в Python является использование многострочных строк с синтаксисом «»» (три кавычки). Например:

Можно использовать тройные кавычки для создания чего-то, что напоминает многострочный комментарий в Python. Необходимо убедиться, что правильно ввели «»», иначе будет получено исключение SyntaxError. Например, если нужно определить блочный комментарий внутри функции с помощью такого синтаксиса, то должны выполнить это следующим образом:

Имейте в виду, что данный метод не создает «истинных» комментариев. Он просто вставляет текстовую константу, которая ничего не делает. Это то же самое, что вставить правильную однострочную строку где-то в коде и никогда не обращаться к ней.

Тем не менее, такая потерянная строковая константа не будет отображаться в байт-коде, фактически превращая её в многострочный комментарий. Далее доказательство того, что неиспользуемая строка не будет отображаться в дизассемблированном байт-коде CPython:

Однако будьте осторожны, когда помещаете такие «комментарии» в код. Если строка следует сразу после сигнатуры функции, определения класса или в начале модуля, она превращается в docstring, которая имеет совсем другое значение в Python:

Docstrings («строки документации») позволяют сопоставлять удобочитаемую документацию с модулями, функциями, классами и методами Python. Они отличаются от комментариев исходного кода.

Комментарий удаляется парсером, тогда как docstring встраивается в байт-код и ассоциируется с документированием объекта. Её можно даже запросить к программному объекту во время выполнения.

Как это было сказано ранее, единственный способ получить «истинные» многострочные комментарии в Python, которые игнорируются парсером, заключается в использовании нескольких комментариев # для каждой однострочной строки.

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

Python Comment Block – How to Comment Out Code in Python

Ihechikara Vincent Abba

Ihechikara Vincent Abba

Python Comment Block – How to Comment Out Code in Python

In this article, we’ll talk about comments in Python, why they are important, and how to use them effectively in your code.

When to Use Comments

In this section, we’ll talk about some of the general use cases for comments. These aren’t only applicable to Python, but to most programming languages.

Here are some of the main reasons to comment your code:

  • Preventing code execution: In some cases, you’ll need to prevent a part of your code from running. This may be because you have no use for that code at the moment, but you want to add it anyway for future functionality.
  • Readability: This is very important – not just for ourselves but for other developers. We can use comments to explain what each code block does. This is useful when other developers are reading our code, as it makes it easy to understand what each part of the code does.

How to Comment out Code in Python

The syntax for comments differs in each programming language. In this section, we’ll see how to add comments using Python.

Comments in Python start with the # symbol. Here’s an example:

In the code above, I have used a comment to explain what the code does. When the code is being executed, the interpreter will ignore the comment and run the print() function.

We can also comment out actual code. That is:

When we run the code, only the second line will be interpreted.

You don’t always have to place comments above the line of code they’re referencing. You can also put them on the same line. That is:

How to Write Multi-Line Comments in Python

In this section, we’ll see how to write comments that span across multiple lines.

Unlike most other programming languages, Python has no built-in syntax for creating multi-line comments.

Fortunately, there are two ways we can work around that. Here’s the first:

Above, we placed the # symbol on each line to continue writing our comment.

In this next example, we are going to use multi-line strings (starts and ends with three quotation marks) to nest our comment.

When you use multi-line strings in Python without assigning the string to a variable, that part of the code will be ignored.

Here’s an example:

Conclusion

In this article, we learned why it is important to comment our code and how to use comments. We also saw how to create multi-line comments.

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

Любая программа, особенно большая и сложная, должна содержать комментарии. Иначе через какое-то время даже автор программы забудет, чего он там такое понаписал, и ему будет крайне сложно вспомнить и разобраться в своём творении. Поэтому все языки программирования предусматривают возможность вставки комментариев в исходные тексты. И Python не исключение.

В этой статье и видео расскажу о том, какие бывают комментарии в Python и как ими можно управлять.

Ну а вообще виды комментариев могут ещё зависеть от среды разработки, которых для Python существует довольно много. Однако я буду рассматривать только стандартные виды комментариев. А речь будет идти о Python 3.8 и выше.

Виды комментариев в Python

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

  • Однострочные. Это обычно короткие комментарии, которые чаще всего записываются справа от выражения и кратко описывают действие, которое оно выполняет.
  • Многострочные. Такие комментарии обычно используются в начале программы (модуля) или перед крупными блоками кода (например, подпрограммами, классами и т.п.).

В некоторых языках есть несколько способов вставки комментариев, которые отличаются для многострочных и однострочных комментариев. А в некоторых языках есть только один способ. Как это сделано в Python — расскажу далее.

Однострочный комментарий в Python

Комментарий начинается с символа хэша ( # ), который не является частью строкового литерала, и заканчивается в конце физической строки. Комментарий означает конец логической строки, если только не будут вызваны неявные правила соединения строк. Комментарии игнорируются синтаксисом. То есть интерпретатор никак не реагирует на наличие комментария, даже если внутри комментария находится исходный код.

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

В Python нет многострочных комментариев. Если вы хотите закомментировать несколько строк, то просто начинайте каждую из этих строк с символа комментария:

Это на самом деле очень неудобно, если требуется закомментировать большое количество строк (например, какой-то глючный участок кода). Поэтому у Python есть способ комментирования блока кода (об этом в конце статьи).

Слышал, что есть какие-то хитрые способы сделать многострочный комментарий в Python. И даже видел ))) Но, поскольку они не стандартизированы, то рассказывать о них не буду.

Особенности использования комментариев при разрыве строк

При создании программ иногда выражение является очень длинным и его неудобно записывать в одну строку. Для решения этой неприятности в Python несколько физических строк исходного кода можно объединить в одну логическую с помощью символа \ . Если в конце строки поставить этот символ, то интерпретатор будет считать, что следующая строка является продолжением текущей. Например:

Так вот, если строка заканчивается обратной косой чертой, то она не может содержать комментарий. Вот так делать нельзя:

Обратная косая черта не продолжает комментарий. То есть если вы напишите так:

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

Обратная косая черта запрещена в любом другом месте строки за пределами строкового литерала.

Но вы можете сделать так:

То есть необязательно закрывать кавычки в данном случае, чтобы сделать из двух физических строк одну логическую. Но в этом примере в строку добавятся пробелы, которые будут между 123 и 456 .

Неявное соединение строк

Выражения в круглых скобках, квадратных скобках или фигурных скобках могут быть разделены более чем на одну физическую строку без использования обратной косой черты. Например:

Строки, которые продолжаются подобным образом, могут содержать комментарии. Отступы в данном случае не имеют значения. Допускается использовать пустые строки. Между неявно объединёнными строками нет символа новой строки. Неявно объединённые строки также могут встречаться в строках, заключенных в тройные кавычки, но в этом случае они не могут содержать комментариев.

Как добавить комментарий в Python

Неужели трудно догадаться? Наверняка многие решат, что этот раздел высосан из пальца и совершенно не нужен. Однако я так не думаю. Потому что за свою жизнь сталкивался с учениками очень разных уровней подготовки и с разными способностями к восприятию материала.

Итак, способы добавления комментария:

  • Просто напечатать знак # и таким образом добавить комментарий
  • Скопировать комментарий или комментарии из другого исходного кода
  • Закомментировать блок кода комбинацией клавиш ALT+3 или через меню Format — Comment Out Region

Убрать комментарий также просто:

  • Удалить знак # в начале строки или удалить комментарий целиком
  • Раскомментировать блок кода комбинацией клавиш ALT+4 или через меню Format — Uncomment Region

Закомментировать или раскомментировать блок кода нельзя в Python Shell, потому что здесь в этом нет смысла — вы пишите код и сразу исполняете его.

Эта возможность есть только в редакторе исходного кода (которым вы открываете файл исходного кода). По умолчанию, напомню, при запуске IDLE открывается Python Shell.

Чтобы перейти в редактор исходного кода можно просто в Python Shell выбрать команду меню File — Open и открыть какой-либо скрипт. Тогда и откроется редактор, где вы найдёте меню Format :

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *