Есть какой-то способ использовать dict в качестве декоратора на python, используя синтаксис по умолчанию "@" ?
Как-то так:
from functools import wraps
def deco(f):
@wraps(f)
def wrapper(*args, **kwargs):
print("WRAPPER")
return f(*args, **kwargs)
return wrapper
X={ "deco": deco }
# Working
@deco
def f():
pass
# Not Working: SyntaxError: invalid syntax
@X["deco"]
def y():
pass
f()
y()
Если изменить для использования get () на dict , эта работа, но что-то вроде этого:
# Not working: SyntaxError: invalid syntax
@X.get("deco").require(http_exception=403)
def y():
pass
Есть какой-то способ для этого синтаксиса работать или / и почему не работает?