Встречается на 1% собеседований по Python
Какие магические методы нужно переопределить для создания контекстного менеджера
Для создания контекстного менеджера в Python нужно реализовать два магических метода: __enter__ и __exit__.
__enter__вызывается при входе в блокwithи возвращает объект, который будет использоваться внутри блока__exit__вызывается при выходе из блокаwith, даже если произошло исключение. Принимает параметрыexc_type,exc_val,exc_tbдля обработки исключений
Пример:
python
class FileManager:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
self.file = None
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
self.file.close()
if exc_type: # Если было исключение
print(f"Ошибка: {exc_val}")
return True # Подавляем исключениеТакже можно использовать contextlib.contextmanager для создания контекстного менеджера через генератор.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы