Функция, действующая как декоратор, так и менеджер контекста в Python?

Это могло бы подтолкнуть вещи слишком далеко, но в основном из любопытства.

Можно ли иметь вызываемый объект (функция / класс), который одновременно действует как Контекстный менеджер, так и декоратор:

def xxx(*args, **kw): # or as a class @xxx(foo, bar) def im_decorated(a, b): print('do the stuff') with(xxx(foo, bar)): print('do the stuff') 

  • Динамически добавить декоратор в класс
  • Как автоматически регистрировать класс при его определении
  • Декодер Python по методу экземпляра
  • Использование декораторов на лямбдах в Python?
  • Запомните функцию, чтобы она не сбрасывалась при повторном запуске файла в Python
  • Как определить класс, которому принадлежит @staticmethod?
  • Использование классов / статических методов в качестве значений параметров по умолчанию в методах одного и того же класса
  • Как сделать pytest fixtures работать с украшенными функциями?
  • Python - лучший язык программирования в мире.