Sobes.tech
Middle
36

Անհրաժեշտ է իրականացնել դեկորատոր, որը կեշավորում է մեթոդի կատարման արդյունքը՝ հիմնվելով նրա մուտքային արգումենտների վրա։

Ընկերությունները, որտեղ հարցրել են
Лига Цифровой ЭкономикиЛига Цифровой Экономики

Պատասխան AI-ից

sobes.tech AI

Для реализации декоратора кэширования результата метода по входным аргументам в Python можно использовать словарь для хранения результатов. Вот пример простого декоратора:

def cache_decorator(func):
    cache = {}
    def wrapper(*args, **kwargs):
        key = (args, tuple(sorted(kwargs.items())))
        if key not in cache:
            cache[key] = func(*args, **kwargs)
        return cache[key]
    return wrapper

# Пример использования
@cache_decorator
def compute(x, y):
    print("Вычисляем...")
    return x + y

print(compute(1, 2))  # Вычисляем... \n3
print(compute(1, 2))  # 3 (берётся из кэша, вычисление не повторяется)

Этот декоратор сохраняет результаты вызова функции с конкретными аргументами и возвращает кэшированный результат при повторных вызовах с теми же параметрами.