Decorador de memoización en Python
La memoización cambia memoria por velocidad — estándar para funciones puras costosas.
def memorizar(fn):
cache = {}
def envoltura(*args):
if args not in cache:
cache[args] = fn(*args)
return cache[args]
return envoltura
Cómo funciona
- Envuelve una función en un decorador.
- Un
dictcachea cada resultado, con los argumentos de la llamada como clave. - Repetir la llamada con los mismos argumentos devuelve el valor cacheado al instante.
Palabras clave y builtins usados aquí
defifreturn
El intento, en números
- Líneas
- 9
- Caracteres a escribir
- 135
- Tokens
- 40
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 23 segundos.
Paso 4 de 5 en Decoradores y clausuras; paso 8 de 53 en Python pythónico.