Описание тега contextmanager

Диспетчер контекста python управляет контекстом оператора with. Диспетчер контекста определяет ловушки входа и выхода, которые вызываются при входе и выходе из блока кода под оператором with соответственно.

Оператор with в Python создает контекст времени выполнения, определяемый диспетчером контекста. Как блок кода подwith заявление введено, __enter__ хук вызывается в диспетчере контекста, и при выходе (любыми средствами, включая исключения и операторы возврата) __exit__ крючок называется.

Python предоставляет несколько стандартных менеджеров контекста. Например, файловые объекты можно открывать как диспетчер контекста, и при выходе файл автоматически закрывается.

Менеджеры контекста были определены в PEP 343.