Sobes.tech
Junior — Middle
96

Wie implementiert man eine Dekoratorfunktion, die das Ergebnis der Ausführung einer anderen Funktion speichert, um es bei wiederholten Aufrufen mit den gleichen Argumenten wiederzuverwenden?

Antwort von AI

sobes.tech KI

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

Пример простого декоратора:

def memoize(func):
    cache = {}
    def wrapper(*args):
        if args in cache:
            return cache[args]
        result = func(*args)
        cache[args] = result
        return result
    return wrapper

@memoize
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))  # Вычисляется один раз, затем результат берется из кэша

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