Раздел 45 · Python backend: Тарбадель

Контекстные менеджеры и contextlib

middle~35 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Узор раскладывает на верстаке карту машинных залов и отмечает огоньками всё, что нашёл открытым: шлюз в третьем зале, журнал насосной, кабель к старому прессу. Элодий смотрит на карту дольше, чем на твой конвейер вчера.

Ты пользуешься with с урока 23: with open(path) as file:, и файл закрывается сам. Как он это делает и что значит «сам», если программа упала посреди блока, ты пока не спрашивал. А это та же история, что со шлюзами: ресурс, который надо вернуть, и исключение, которое может пролететь между «взял» и «вернул».

Сегодня ты разберёшь with до двух методов, научишься писать менеджеры классом и генератором, закрывать неизвестное заранее число ресурсов и решать, какие исключения глотать. А на этапе соберёшь свой contextlib: первый инструмент арсенала, которым будут пользоваться все залы.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.