|Once — función que solo se ejecuta una vezMedio
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 10:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Once — función que solo se ejecuta una vez

Medio10 pts·Funciones
ruleRestricciones
  • radio_button_unchecked
    Usa nonlocal para rastrear si la función fue llamada

Enunciado

Implementa once(f), una función que recibe otra función f y retorna un closure.

El closure debe llamar a f solo la primera vez que se invoca y retornar su resultado. En las llamadas siguientes, debe retornar None sin llamar a f nuevamente.

También implementa test_once(value, calls) que crea un closure con once(lambda: value), lo llama calls veces y retorna la lista de resultados.

get_value = once(lambda: 42)
print(get_value())  # 42
print(get_value())  # None
print(get_value())  # None

# test_once(42, 3) -> [42, None, None]
print(test_once(42, 3))   # [42, None, None]
print(test_once("hola", 2)) # ["hola", None]

Usa nonlocal dentro de once para rastrear si la función ya fue invocada.

Restriccionesexpand_more
  • Dificultad: Medio
  • Completa todos los test cases para obtener los 10 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar print() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Once — función que solo se ejecuta una vez — Medio | Coding Challenges · Coding Challenges