Загружаем изображение…

Знали, что Python может сам закрывать ресурсы без with?



Если работаешь с ресурсами, у которых есть .close(), но они не являются контекстными менеджерами, их всё равно можно безопасно обернуть, без try/finally.

Python даёт для этого contextlib.closing:
from contextlib import closing
from urllib.request import urlopen

Открываем ресурс и гарантируем закрытие:
with closing(urlopen("https://example.com")) as r:
print(r.status)

Это заменяет ручную очистку:
r = urlopen("https://example.com")
try:
print(r.status)
finally:
r.close()


Если у объекта есть close() — closing() превращает это в безопасный и линейный код.

Python Ready | #совет
Просмотры: 251
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти