Из документации Python:
«Оператор with используется для обертывания выполнения блока методами, определенными менеджером контекста (см. раздел Менеджеры контекста оператора With)».
Оператор with / as запускает логику управления контекстом объекта, чтобы гарантировать
выполнение действий при завершении безотносительно к любым исключениям
в его вложенном блоке:
with open('lumberjack.txt', 'w') as file:
file.write('Лиственница!')
# Попытка обратиться к несуществующему атрибуту
file.nonexistent_method() # AttributeError
Файл все равно будет создан, хоть программа и выпадет в исключение:
AttributeError: '_io.TextIOWrapper' object has no attribute 'nonexistent_method'
Post #4201
760
- 👍 2
- ❤ 1
- 👎 1