Saltar al contenido principal
🔒 Modo vista previa. Las primeras quince lecciones de Foundations son gratis; esta es Pro. Inicia un trial de 7 días para desbloquear el editor, las pistas AI y el resto del programa. Tarjeta requerida, cancela cuando quieras en Dashboard.Iniciar trial de 7 días →
← CursosSenior Deep-DivesModule 11 · Decorator patterns at scaleParametrised decorators — three nested functions, not twopredict150 / 161
+150 XP
Tarea
📝 **Tarea:** Predecir la salida de 5 líneas. Un decorador parametrizado `@repeat(times=3)` envuelve `saludo`. El contenedor ejecuta el cuerpo 3 veces por llamada. La verificación final de `__name__` verifica que `@wraps(fn)` conservó los metadatos de la función empaquetada. 📋 Implemente la función anterior. Las pruebas se ejecutan automáticamente. 💡 **Pista:** Vuelve a leer la teoría si te quedas atascado.
Predice la salida

Lee el código con atención

from functools import wraps


def repeat(times: int):
    def decorator(fn):
        @wraps(fn)
        def wrapper(*args, **kwargs):
            result = None
            for _ in range(times):
                result = fn(*args, **kwargs)
            return result
        return wrapper
    return decorator


@repeat(times=3)
def greet(name: str) -> str:
    print(f"hi {name}")
    return name


result = greet("Ada")
print(f"returned: {result}")
print(greet.__name__)

¿Qué imprimirá el programa? Escribe aquí:

💬 Discusión

Sé el primero en hacer una pregunta o compartir un consejo.
Inicia sesión para unirte a la discusión. Leer es gratis.
Cargando discusión…