Аргументы декоратора класса 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), Я попробовал много решений и прочитал статьи об этом, но здесь я все еще не могу заставить это работать.

Есть идеи, чтобы решить это? Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос