Proyecto: decorador que cuenta llamadas
Python · Unidad 21: Python avanzado
- Plan completo
- Python
- Proyecto
- 3 ejercicios
Vas a escribir un decorador con memoria. Junta las dos primeras lecciones: la envoltura es un closure, y lo que recuerda entre llamadas vive en la función de afuera.
Este deja pasar una sola vez.
def primera(f):
hecho = False
def envuelta(*args):
nonlocal hecho
if hecho:
return "ya"
hecho = True
return f(*args)
return envuelta
@primera
def entrar():
return "bienvenida"
print(entrar(), entrar())Imprime
bienvenida ya
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Completa el código
Completa para que la cuenta siga subiendo entre llamadas.
2. Escribe el código
Escribe
contar: antes de llamar a la función, imprimeLlamada 1,Llamada 2, y así; después entrega el resultado como siempre. Usaprint("Llamada", veces).3. Escribe el código
Ahora la cuenta se guarda en el diccionario
veces, con el nombre de la función de llave:f.__name__.usarya está escrita y regresa el total y la cuenta;veces.clear()deja el diccionario vacío antes de empezar.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.