contextlib.closing
Позволяет автоматически «закрыть» объект после отрабатывания кода.
contextlib.closing(obj)
obj -- Любой объект, который следует «закрыть» при выходе из менеджера контекста. Должен реализовывать метод '.close()'.
Возвращает менеджер контекста, который вызовет метод
.close()
указанного объекта после отрабатывания кода из тела with безоговорочно — вне зависимости от того, произойдёт ли исключение. from contextlib import closing
class MyClass(object):
def close(self):
print('closed')
with closing(MyClass()) as my_obj:
print(my_obj.__class__.__name__)
raise Exception('failed')
# MyClass
# closed
# Exception: failed
На заметку
Функция будет работать с любым объектом, если он реализует метод
.close()
.
Синонимы поиска: contextlib.closing, contextlib, closing
На заметку
Зарегистрированные пользователи могут публиковать свои Статьи.