contextlib в Python и зачем он используется?Модуль
contextlib предоставляет утилиты для работы с контекстными менеджерами. Он позволяет создавать собственные контекстные менеджеры без необходимости вручную реализовывать методы __enter__ и __exit__. Это упрощает управление ресурсами, такими как файлы или сетевые соединения.➡️ Пример:
from contextlib import contextmanager
@contextmanager
def managed_file(name):
f = open(name, 'w')
try:
yield f
finally:
f.close()
print(f'Файл {name} закрыт.')
# Использование контекстного менеджера
with managed_file('example.txt') as f:
f.write('Привет, мир!')
🗣️ В этом примере @contextmanager создаёт контекстный менеджер для работы с файлом. Файл автоматически закрывается после выполнения блока with, даже если произойдёт ошибка.
🖥 Подробнее тут