{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

With ... as - менеджеры контекста в python

Теория

Конструкция with ... as используется для оборачивания выполнения блока инструкций менеджером контекста. Иногда это более удобная конструкция, чем try: except: finally.

Синтаксис оператора контекста with

"with" expression ["as" target] ("," expression ["as" target])* ":"suite

Что происходит при выполнении данного блока?

  • Выполняется выражение в конструкции with ... as.
  • Загружается специальный метод __exit__ для дальнейшего использования.
  • Выполняется метод __enter__. Если конструкция with включает в себя слово as, то возвращаемое методом __enter__ значение записывается в переменную.
  • Выполняется suite.
  • Вызывается метод __exit__. В этот метод передаются параметры исключения, если оно произошло, если нет то во всех аргументах значение None, если исключения не было.

Если в конструкции with - as было несколько выражений, то это эквивалентно нескольким вложенным конструкциям.

Для чего применяется конструкция with ... as?

Для гарантии того, что критические функции выполнятся в любом случае. Самый распространённый пример использования этой конструкции - открытие файлов. Я уже рассказывал об открытии файлов с помощью функции open, однако конструкция with ... as, как правило, является более удобной и гарантирует закрытие файла в любом случае.

Пример:

Данный пример показывает, что файл будет закрыт вне зависимости от того, что введёт пользователь.

Подписывайтесь на канал, тут каждый день выходят новые уроки.

Все уроки, а также коды с уроков вы можете найти в моем telegram канале.

Также каждый день в telegram канале появляются полезные книги и пособия с материалом по программированию, а также выходят эффективные фишки, которые значительно упрощают вашу работу с программированием.

0
Комментарии
-3 комментариев
Раскрывать всегда