Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpMgCx 95 of 174 menu
◀ ▶

Менеджер контекста в ООП в Python

Конструкция with временно входит в контекст и затем выходит из него. Для этого в классе задают специальные методы __enter__ и __exit__.

Метод __enter__ вызывается в начале блока with. Метод __exit__ вызывается в конце, даже если внутри блока была ошибка.

Давайте сделаем простой класс, который при входе пишет одно сообщение, а при выходе - другое:

class Logger: def __enter__(self): print('start') return self def __exit__(self, exc_type, exc_val, exc_tb): print('end') return False

Воспользуемся конструкцией with:

with Logger(): print('work')

Сделайте класс Timer. В методе __enter__ выводите текст 'timer on', в методе __exit__ - 'timer off'.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить