Встречается на 2% собеседований по Python
Приведи пример контекстного менеджера
Контекстный менеджер в Python позволяет управлять ресурсами, автоматически освобождая их после использования. Реализуется через протокол with и методы __enter__ и __exit__.
Пример:
python
class FileManager:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
self.file = None
text
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
if self.file:
self.file.close()Использование:
with FileManager('example.txt', 'w') as f:
f.write('Hello, context manager!')
text
**Как это работает:**
1. При входе в блок `with` вызывается `__enter__()`, который открывает файл.
2. После выполнения блока (или при исключении) вызывается `__exit__()`, гарантируя закрытие файла.
Также можно использовать `contextlib.contextmanager` для создания менеджера через генератор.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы