Приходилось ли писать собственные контекстные менеджеры

Python Middle Без компании
Приходилось ли писать собственные контекстные менеджеры
Ответы
Да, приходилось. В Python контекстные менеджеры реализуются через протокол `__enter__` и `__exit__` или с помощью декоратора `@contextmanager` из модуля `contextlib`. Они полезны для управления ресурсами (файлы, соединения) и выполнения setup/teardown операций. Пример с классом: ``` class DatabaseConnection: def __enter__(self): self.conn = connect_to_db() return self.conn def __exit__(self, exc_type, exc_val, exc_tb): self.conn.close() if exc_type is not None: print(f"Error occurred: {exc_val}") ``` Пример с `@contextmanager`: ``` from contextlib import contextmanager @contextmanager def temp_file(path): try: f = open(path, 'w') yield f finally: f.close() ``` Контекстные менеджеры гарантируют освобождение ресурсов даже при возникновении исключений.