Отключение фрагментов кода и значений в Python на несколько строк

Раздел: Основы Python -> Синтаксис Python

Способы отключения нескольких строк кода в Python

Базовый подход: символ # перед каждой строкой

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


# Первая строка
# Вторая строка
# print('Этот код не выполняется')
print('Этот код выполняется')

как закомментировать несколько строк в python (многострочные конструкции и множественные элементы в python)

Этот код выполняется

Python обозначение типов (обозначение типов данных в python)

Такой подход применим в любом редакторе и в любой версии Python. Комментарии не создают строковых объектов и не влияют на итоговое поведение программы. Цель такого комментария: временно исключить строки из выполнения, сохраняя их для последующего восстановления.

Типичная трудность

Если в программе уже используется символ # внутри строки, например в тексте 'color: #fff', комментарий начинается только в том случае, если символ # стоит вне строкового литерала. Поэтому при комментировании строк кода с такими значениями требуется внимательность.


# print('color: #fff')
print('ready')

базовые конструкции языка python (основные конструкции языка python)

ready

Python подчеркивание (использование подчеркивания в python)

Как закомментировать выделенный блок с помощью клавиш в редакторе?

Редакторы VS Code, PyCharm, Sublime Text и другие поддерживают переключение комментариев для выделенного фрагмента. На Windows и Linux используется сочетание Ctrl + /, на macOS Cmd + /. После выделения нужных строк и нажатия сочетания редактор добавляет символ # в начало каждой строки.


# этот блок только что был комментарием
# вторая строка блока
# третья строка блока

Python название переменной (правила именования в python)

Повторное нажатие убирает символы #. Этот вариант удобен для быстрой отладки и для переключения между версиями логики.

Как отключить несколько строк через тройные кавычки?

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


'''
Текст внутри блока.
print('Эта строка не выполняется')
x = 10
'''
print('Блок завершен')

Python скобки (скобки в python)

Блок завершен

Цель такого варианта: быстро выключить большую часть программы без удаления текста. Однако в модуле, классе или функции такая строка становится docstring и может отображаться в справочной информации.

Ошибка с тройными кавычками

Если внутри такого блока встречаются такие же тройные кавычки, возникает SyntaxError. Тройные кавычки не подходят для временного комментирования кода, который уже содержит тройные кавычки. В таких случаях применяется символ #.

Как отключить группу строк с помощью условия if False?

Конструкция if False: позволяет превратить блок в неисполняемый. Тело блока записывается с отступом и не выполняется при запуске программы.


if False:
    print('Не будет напечатано')
    data = 123
    print(data)
print('Продолжение')
Продолжение

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

Как закомментировать отдельные элементы в многострочных списках и словарях?

Python позволяет располагать элементы коллекций по одному на строке. Перед элементом ставится #, и этот элемент не попадает в конечный список или словарь.


colors = [
    'red',
    'green',
    # 'blue',
    'cyan',
]
print(colors)
['red', 'green', 'cyan']

Этот подход применяется для управления конфигурацией, настройками или перечнем значений без удаления исходного текста.

Частая ошибка при комментировании элемента словаря

Если закомментировать пару ключ: значение, то запятая перед комментарием или после него должна остаться в нужном месте. Иначе следующий элемент окажется без разделителя, и возникнет SyntaxError.


config = {
    'host': 'localhost',
    # 'port': 8080,
    'mode': 'auto',
}
print(config)
{'host': 'localhost', 'mode': 'auto'}

Как отключить аргумент в многострочном вызове функции?

Длинные вызовы функций можно записывать в несколько строк внутри круглых скобок. Это удобно для настройки вывода или передачи параметров. Закомментированный аргумент не передается в функцию.


print(
    'Hello,',
    'user',
    # 'today',
)
Hello, user

Дополнительные примеры многострочных выражений и комментариев

Переключение реализации внутри функции

В функции можно заранее подготовить несколько вариантов возвращаемого значения. Строка с return, перед которой стоит #, не выполняется. Активной становится следующая строка с return.

Пример

def compute(a, b):
    # return a ** b
    return a * b

print(compute(3, 4))
12

Если убрать # перед первым return, функция начнет возвращать 81.

Пример

def compute(a, b):
    return a ** b
    return a * b

print(compute(3, 4))
81

Второй return недостижим, поэтому функция всегда завершает работу на первом.

Многострочный список с комментариями отдельных элементов

Пример

plan = [
    'разработка',
    'тестирование',
    # 'документация',
    'релиз',
]
print(plan)
['разработка', 'тестирование', 'релиз']

Комментарий перед элементом делает его недоступным для использования, но текст остаётся в исходном файле. Такая запись удобна при работе с планами задач.

Кортеж с поясняющими комментариями

Пример

point = (
    10,  # x
    20,  # y
    # 30,  # z
)
print(point)
(10, 20)

Комментарии после значений объясняют назначение каждого элемента. Отключение позиции z меняет размерность кортежа.

Выражение в скобках с закомментированной частью

Пример

total = (
    100
    + 20
    + 5
    # + 1
)
print(total)
125

Круглые скобки позволяют перенести выражение на несколько строк. Комментарий перед знаком операции скрывает слагаемое, и общая сумма уменьшается.

Блок if False с сохранением отступов

Пример

if False:
    print('Шаг 1')
    print('Шаг 2')
print('Завершение')
Завершение

Данный приём сохраняет структуру отключенного кода. Для включения блока достаточно заменить False на True.

Списочное выражение без фильтра и с фильтром

Пример

numbers = [
    n
    for n in range(6)
    # if n % 2 == 0
]
print(numbers)
[0, 1, 2, 3, 4, 5]

После удаления символа # перед if фильтр начнет действовать, и в список попадут только четные числа.

Пример

numbers = [
    n
    for n in range(6)
    if n % 2 == 0
]
print(numbers)
[0, 2, 4]

Многострочная строка в роли документации

Пример

def sign(x):
    '''
    Возвращает знак числа.
    '''
    if x > 0:
        return 'positive'
    if x < 0:
        return 'negative'
    return 'zero'

print(sign(5))
positive

Строка с тройными кавычками сохраняется как docstring функции. Она не влияет на результат, но может использоваться средствами документации.

Многострочные конструкции и множественные элементы в Python - comments

En
как закомментировать несколько строк в python (python)