Я пытаюсь понять, как декорировать декораторы, и хотел попробовать следующее:
Допустим, у меня есть два декоратора и я применяю их к функции привет:
def wrap(f):
def wrapper():
return " ".join(f())
return wrapper
def upper(f):
def uppercase(*args, **kargs):
a,b = f(*args, **kargs)
return a.upper(), b.upper()
return uppercase
@wrap
@upper
def hello():
return "hello","world"
print hello()
Тогда я должен начать добавлять другие d экораторы для других функций, но в целом декоратор обертывания "обернет их все"
def lower(f):
def lowercase(*args, **kargs):
a,b = f(*args, **kargs)
return a.lower(), b.lower()
return lowercase
@wrap
@lower
def byebye():
return "bye", "bye"
Теперь, как мне написать декоратор, с помощью которого я могу украсить свои нижний и верхний декораторы:
@wrap
def lower():
...
@wrap
def upper():
...
Для достижения тот же результат, что и выше, только выполнив:
@upper
def hello():
...
@lower
def byebye():
...