Используется для оборачивания выполнения блока инструкций менеджером контекста. Выглядит намного проще и красивее, чем try/except/finally.
Первым делом вызывается
__enter__, где класс выполняет важные операции. Например, открывает файл. Если блок закончил свою работу или, вдруг, появилась ошибка, выполняется
__exit__. Там выполняется, например, закрытие файла.Подробнее об этом операторе написали в PEP 343.
#теория
