Envoltorio de una función
Quieres una línea escrita antes de un saludo. Llamas a greet con kai. La primera línea en la pantalla será door. La segunda línea será hi kai.
def announce(fn):
def wrapped(name):
print("door")
return fn(name)
return wrapped
@announce
def greet(name):
return "hi " + name
print(greet("kai"))
La pantalla muestra dos líneas. Escribiste print(greet("kai")). Esa ejecución no empieza en la línea return dentro de greet. @announce pone wrapped alrededor de greet, así que primero se ejecuta wrapped cuando llamas a greet("kai"). El print dentro de wrapped escribe door, y esa es la primera línea. Después wrapped ejecuta el saludo, y el saludo devuelve hi kai. El print alrededor de greet("kai") escribe hi kai, y esa es la segunda línea. El programa terminó. No hay tercera línea. None no es una tercera línea.
door no es el saludo. El saludo es hi kai. Si la línea @announce no estuviera encima de greet, print(greet("kai")) escribiría una sola línea, hi kai. Ese programa no es este. Este programa tiene @announce, así que la primera línea es door y la segunda línea es hi kai.
Ahora puedes poner un envoltorio alrededor de una función para que una línea se ejecute antes de la línea propia de la función. La pantalla muestra door y luego hi kai. La página siguiente escribe un tipo junto a un nombre.
Una línea antes del saludo
La línea @announce encima de greet hace que el print dentro de wrapped escriba door primero. Después print(greet("kai")) escribe la línea hi kai. La pantalla muestra dos líneas: door y luego hi kai. La página siguiente escribe un tipo junto a un nombre.
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior