Это может зайти слишком далеко, но в основном из любопытства ..
Возможно ли это иметь вызываемый объект (функция / класс), который действует как одновременно диспетчер контекста и декоратор:
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')