Я пытаюсь передать необязательные аргументы своему декоратору класса в 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 __ () принимает как минимум 2 аргумента (3 задано)
. Я пробовал много решений и читал статьи об этом, но здесь я все еще не могу заставить его работать.
Есть идеи решить эту проблему? Спасибо!