ИНСТРУКЦИЯ WITH...AS
Язык Python поддерживает протокол менеджеров контекста. Этот протокол гарантирует выполнение
завершающих действий (например, закрытие файла) вне зависимости от того, произошло исключение внутри блока кода или нет. Для работы с протоколом предназначена инструкция with ... as.
Метод __enter__ () вызывается после создания объекта. Значение, возвращаемое этим методом, присваивается переменной, указанной после ключевого слова as. Если переменная не указана, возвращаемое значение игнорируется.
Далее выполняются инструкции внутри тела инструкции with. Если при выполнении возникло исключение, то управление передается методу__exit__ ()