Встречается на собеседованиях • сегодня

Как работает контекстный менеджер в Python

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

Основные методы:

  1. __enter__() – выполняется при входе в блок with, возвращает объект для работы
  2. __exit__() – выполняется при выходе из блока, обрабатывает исключения

Пример с файлом:

python
with open('file.txt', 'r') as f:
    data = f.read()
# Файл автоматически закрывается после блока

Создание своего контекстного менеджера:

python
class MyContext:
    def __enter__(self):
        print("Entering context")
        return self
    
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting context")
        if exc_type:
            print(f"Exception occurred: {exc_val}")
        return True  # Подавляем исключение

with MyContext() as ctx:
    print("Inside context")
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы