Инструкция pass в Python

Инструкция pass в Python: пустой оператор-заполнитель для функций, классов и условий, которые пока не реализованы.

pass — единственный оператор Python, который не выполняет никаких действий. Интерпретатор обрабатывает его и двигается дальше — результат называют NOP (No Operation).

Зачем нужен pass

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

Комментарии в Python игнорируются лексером и не считаются инструкциями, поэтому они не помогут — нужен именно pass.

Синтаксис

pass

pass в функции

Типичный случай — набросок функции, которую вы допишете позже:

def process_payment(amount):
    pass  # TODO: интегрировать платёжный шлюз

def send_email(to, subject):
    pass  # TODO: подключить SMTP

print("Модуль загружен без ошибок")

Вывод:

Модуль загружен без ошибок

Функции определены, интерпретатор доволен — ошибок нет, даже если тело пусто.

pass в классе

Заглушка-класс удобна при проектировании архитектуры «сверху вниз»:

class DatabaseConnection:
    pass

class UserRepository:
    pass

class OrderService:
    pass

print(type(DatabaseConnection()))  # убеждаемся, что класс создаётся

Вывод:

<class '__main__.DatabaseConnection'>

pass в условии

Иногда нужно явно ничего не делать для одного из вариантов условия:

numbers = [1, -3, 7, -2, 5]

for n in numbers:
    if n < 0:
        pass  # отрицательные числа пока игнорируем
    else:
        print(f"Положительное: {n}")

Вывод:

Положительное: 1
Положительное: 7
Положительное: 5

В продакшн-коде вместо pass в ветке if часто лучше инвертировать условие и убрать ветку целиком — код становится чище. pass хорош как временная мера.

pass в цикле

Пустой цикл как заготовка или при обработке исключений:

data = [10, 20, 30]

for item in data:
    pass  # пройти по всем элементам, ничего не делая

print("Цикл завершён, последний элемент:", item)

Вывод:

Цикл завершён, последний элемент: 30

pass vs continue

ОператорЧто делаетГде применяется
passничего не делает, продолжает блокфункции, классы, условия, циклы
continueпрерывает текущую итерацию циклатолько внутри цикла
for n in range(5):
    if n == 2:
        pass      # n=2 — просто пропускаем блок, но print всё равно выполнится
    print(n)

Вывод:

0
1
2
3
4
for n in range(5):
    if n == 2:
        continue  # n=2 — вся оставшаяся часть итерации пропускается
    print(n)

Вывод:

0
1
3
4

Частые ошибки

Ошибка 1: забыть pass и получить SyntaxError.

# Не работает — тело функции пустое (только комментарий не считается)
# def foo():
#     # TODO

# Работает — есть pass
def foo():
    # TODO
    pass

print("ok")

Вывод:

ok

Ошибка 2: оставить pass в продакшне. pass — сигнал «здесь должен быть код». Инструмент grep -rn "pass" src/ или метка # TODO помогут найти такие места перед релизом.

Коротко

  • pass — оператор NOP: интерпретатор его видит, но ничего не делает.
  • Нужен везде, где синтаксис требует тела, а тело пока пустое: функции, классы, условия, циклы.
  • Отличается от continue: continue пропускает итерацию, pass просто ничего не делает внутри текущего блока.
  • В продакшн-коде pass — временная заглушка; помечайте их # TODO и убирайте до релиза.
Проверьте себя
1. Для чего обычно используется инструкция pass?
AДля пропуска текущей итерации цикла
BДля завершения работы программы
CДля передачи значения из функции
DКак «заполнитель» в теле функции, цикла или класса, которые ещё не реализованы
2. Чем инструкция pass отличается от комментария?
Apass выводит сообщение в консоль, а комментарий нет
BКомментарий интерпретатор игнорирует, а pass — нет: это «пустая» операция (NOP), которая выполняется
CНичем — интерпретатор игнорирует и то, и другое
Dpass можно писать только в начале файла
3. Что произойдёт, если оставить тело функции или цикла совсем пустым, без pass?
AФункция просто ничего не будет делать
BИнтерпретатор выведет ошибку — у циклов и функций не может быть пустого тела
CPython молча пропустит такую функцию
DPython автоматически подставит return None
py
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
Открыть курс →