Назад к вопросам
Junior — Middle
66
Каким протоколом оперирует механизм управления ресурсами в контекстных менеджерах?
Ответ от нейросети
sobes.tech AI
Механизм управления ресурсами в контекстных менеджерах Python оперирует протоколом, который требует реализации двух специальных методов: __enter__ и __exit__. Этот протокол позволяет автоматически выделять и освобождать ресурсы, например, открывать и закрывать файлы, устанавливать и снимать блокировки.
Пример простого контекстного менеджера:
class ManagedResource:
def __enter__(self):
print("Ресурс захвачен")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Ресурс освобожден")
with ManagedResource() as resource:
print("Работа с ресурсом")
Здесь with вызывает __enter__ при входе и __exit__ при выходе из блока, обеспечивая корректное управление ресурсом.