Sobes.tech
Middle
42

Πρέπει να υλοποιηθεί ένας διακοσμητής που αποθηκεύει στη μνήμη το αποτέλεσμα της εκτέλεσης μιας μεθόδου βάσει των εισαγωγικών της επιχειρημάτων.

Εταιρείες όπου ρωτήθηκαν
Лига Цифровой ЭкономикиЛига Цифровой Экономики

Απάντηση από 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 (берётся из кэша, вычисление не повторяется)

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