Аргументы декоратора класса Python
Я пытаюсь передать необязательные аргументы моему декоратору класса в Python. Ниже код у меня в настоящее время:
class Cache(object):
def __init__(self, function, max_hits=10, timeout=5):
self.function = function
self.max_hits = max_hits
self.timeout = timeout
self.cache = {}
def __call__(self, *args):
# Here the code returning the correct thing.
@Cache
def double(x):
return x * 2
@Cache(max_hits=100, timeout=50)
def double(x):
return x * 2
Второй декоратор с аргументами для перезаписи по умолчанию (max_hits=10, timeout=5
в моем__init__
функция), не работает, и я получил исключениеTypeError: __init__() takes at least 2 arguments (3 given)
, Я попробовал много решений и прочитал статьи об этом, но здесь я все еще не могу заставить это работать.
Есть идеи, чтобы решить это? Спасибо!