Встречается на 1% собеседований по Python
Какие методы нужно определить в классе для создания контекстного менеджера
Для создания контекстного менеджера в Python нужно реализовать протокол контекстного менеджера, определив методы __enter__() и __exit__() в классе.
__enter__(): вызывается при входе в блокwith, возвращает объект для работы внутри контекста__exit__(exc_type, exc_val, exc_tb): вызывается при выходе из блокаwith, обрабатывает исключения и освобождает ресурсы
Пример:
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 # Подавляем исключениеИспользование:
python
with FileManager("test.txt", "w") as f:
f.write("Hello, world!")
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы