Комментирование кода в Python¶
Комментирование кода в Python — это процесс добавления в исходный текст программы пояснений, которые интерпретатор Python игнорирует при выполнении. Комментарии используются для документирования логики, временного отключения фрагментов кода и повышения читаемости программы. Python поддерживает два основных вида комментариев: однострочные и многострочные (документационные строки, или docstrings).
¶Однострочные комментарии
В Python однострочный комментарий начинается с символа решётки #. Всё, что стоит после # до конца строки, игнорируется интерпретатором:
```python
¶Это комментарий
x = 10 # Это тоже комментарий, но после кода ```
Комментарий может занимать всю строку или находиться после исполняемого кода. Строки, начинающиеся с #, принято выравнивать по отступу соседнего кода.
¶Комментирование нескольких строк
Python не имеет встроенного синтаксиса для блочного комментария, как, например, / ... / в C или Java. Тем не менее, существует несколько способов закомментировать несколько строк.
¶Ручной способ
Каждая строка блока дополняется символом # в начале:
```python
¶x = 1
¶y = 2
¶print(x + y)
```
Этот подход не требует дополнительных инструментов, но при большом объёме кода процесс становится трудоёмким.
¶Горячие клавиши в редакторах
Большинство интегрированных сред разработки (IDE) и текстовых редакторов предоставляют сочетание клавиш для массового комментирования выделенных строк:
| Редактор / IDE | Windows и Linux | macOS |
|---|---|---|
| Visual Studio Code | Ctrl + / | Cmd + / |
| PyCharm | Ctrl + / | Cmd + / |
| Sublime Text | Ctrl + / | Cmd + / |
| Atom | Ctrl + / | Cmd + / |
| Jupyter Notebook | Ctrl + / | Cmd + / |
После выделения нужных строк сочетание клавиш добавляет # в начало каждой строки. Повторное нажатие снимает комментарий.
¶Тройные кавычки
Временно отключить блок кода можно, обернув его в тройные кавычки — обычные (''') или двойные ("""):
``python ''' x = 1 y = 2 print(x + y) ''' ``
Такой фрагмент Python трактует как строковую константу, которая никуда не присваивается и поэтому не выполняется. Способ удобен для отладки, однако имеет ограничения: внутри блока нельзя использовать те же тройные кавычки, а если блок расположен в функции первым выражением, он станет docstring и будет сохранён как атрибут __doc__.
¶Многострочные комментарии (docstrings)
Тройные кавычки в начале модуля, класса или функции образуют документационную строку:
``python def add(a, b): """Возвращает сумму двух чисел.""" return a + b ``
Docstring хранится в атрибуте __doc__ и доступен во время выполнения через функцию help(). В отличие от обычных комментариев, docstrings — это полноценные строковые объекты.
¶Автоматические инструменты
Для массового комментирования и раскомментирования кода существуют утилиты командной строки. Например, стандартная утилита comment в Unix-системах:
``bash sed -i 's/^/#/' file.py ``
Команда sed добавляет # в начало каждой строки файла. Для обратной операции используется:
``bash sed -i 's/^#//' file.py ``
В Python-проектах для управления стилем комментариев применяются линтеры и форматтеры — black, autopep8, pylint. Они не комментируют код автоматически, но помогают соблюдать единый формат пояснений.
¶Стиль комментирования
Согласно руководству по стилю Python (PEP 8), комментарии должны быть:
- написаны на английском или русском языке в зависимости от проекта;
- отделены от кода одним пробелом после
#; - понятными и краткими;
- обновляться вместе с кодом.
Комментарии, описывающие «что» делает код, обычно избыточны — интерпретируемый код сам по себе читабелен. Практичнее комментировать «почему» принято то или иное решение.
¶Ограничения
Стоит учитывать, что комментарии в Python не попадают в байткод .pyc и не могут быть восстановлены из скомпилированной программы. Для документации, которую нужно сохранить в исполняемом файле, используются docstrings.
Источники:
- PEP 8 — Style Guide for Python Code
- Документация Python: «An Informal Introduction to Python»
- Документация Python: «Compound statements» (docstrings)
- PyCharm Documentation: Commenting out code
- Visual Studio Code Documentation: Basic Editing
