Попытка переписать декоратор как Class
не работает должным образом.Мой фактический декоратор:
def check(callback):
def decorator(function):
def wrapper(*args, **kwargs):
result = function(*args, **kwargs)
cb_result = callback()
return result
return wrapper
return decorator
Мой подход к формату класса:
class Check(object):
def __init__(self, *args, **kwargs):
self._args = args
self._kwargs = kwargs
def __call__(self, *call_args, **call_kwargs):
function = call_args[0]
return self.__param__call__(function)
def __param__call__(self, function):
def wrapper(*args, **kwargs):
result = function(*args, **kwargs)
cb_result = callback()
return result
return wrapper
Я ожидаю использовать декоратор как:
@Check(callback=a_function_callback)
def my_function():
...
Что такое мойошибка при переписывании его как класса, я также всегда пытаюсь сохранить обратную совместимость (то есть соответствие Python 2.7).