Теория
Оператор with появился в python 2.5, но, не смотря на это, используется до сих пор недостаточно широко. Являясь упрощенной версией анонимных блоков кода with позволяет:
- исполнить код до начала блока
- исполнить код по выходу из блока, независимо от того это выход по исключению с помощью return или другим способом
- обработать исключение, возникшее в блоке.
Синтаксически with выглядит следующим образом:
Hightlited/Rawwith operation:
code
operation может быть объектом, выражением или конструкцией вида expression as var. Как и много других конструкций он является синтаксическим сахаром для более громоздкого выражения: