import contextlib contextlib.closing(thing)
thing
- объект менеджера контекста.thing
.Функция closing()
модуля contextlib
возвращает менеджер контекста, который закрывает объект thing
после завершения блока.
Это в основном эквивалентно:
from contextlib import contextmanager @contextmanager def closing(thing): try: yield thing finally: thing.close()
И позволяет писать код так:
import contextlib from urllib.request import urlopen with contextlib.closing(urlopen('http://www.python.org')) as page: for line in page: print(line)
Без необходимости явно закрывать страницу page
. Даже если возникает ошибка, page.close()
будет вызываться при выходе из блока with
.