Sobes.tech
Back to questions
Junior — Middle
65

Каким протоколом оперирует механизм управления ресурсами в контекстных менеджерах?

Answer from AI

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__ при выходе из блока, обеспечивая корректное управление ресурсом.