Контекстный менеджер
Контекстный менеджер в Python - это объект, который реализует два метода, __enter__
и __exit__
, и предоставляет блок кода, выполняемого в пределах контекста. Контекстные менеджеры часто используются для управления ресурсами, такими как открытие и закрытие файлов, установка и освобождение блокировок, управление транзакциями в базах данных и другие ситуации, где важно гарантировать корректное выполнение кода до и после определенного блока.
Пример использования контекстного менеджера с файлами:
В данном примере open('example.txt', 'r')
возвращает объект файла, который является контекстным менеджером. Когда код входит в блок with
, вызывается метод __enter__
контекстного менеджера, который, в данном случае, открывает файл. После выполнения кода в блоке with
, вызывается метод __exit__
, который гарантирует корректное закрытие файла, даже если в блоке произошло исключение.
Вариант использования контекстного менеджера без with
:
Однако использование with
более чисто и позволяет избежать явного закрытия ресурсов, так как это будет выполнено автоматически при выходе из блока with
.
Last updated