Skip to content

Commit 8314e18

Browse files
committed
#21 - Python
1 parent 9759f73 commit 8314e18

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import time
2+
3+
4+
# Función simulada que toma un tiempo para completarse
5+
def funcion_asincrona(callback):
6+
print("La función asincrónica está realizando alguna tarea...")
7+
time.sleep(2) # Simulando una tarea que toma tiempo
8+
print("La función asincrónica ha completado su tarea.")
9+
callback() # Llamada al callback después de completar la tarea
10+
11+
12+
# Callback que se ejecutará después de que la función asincrónica termine
13+
def mi_callback():
14+
print("¡El callback ha sido llamado!")
15+
16+
17+
# Llamada a la función asincrónica pasando el callback como argumento
18+
funcion_asincrona(mi_callback)
19+
20+
21+
# Ejercicio extra
22+
23+
import random
24+
25+
26+
# Función de procesamiento de pedidos
27+
def procesar_pedido(
28+
nombre_plato, callback_confirmacion, callback_listo, callback_entrega
29+
):
30+
# Confirmar que el pedido ha sido recibido
31+
print(f"Recibiendo el pedido para: {nombre_plato}")
32+
callback_confirmacion(nombre_plato)
33+
34+
# Simular tiempo de preparación
35+
tiempo_preparacion = random.randint(1, 10)
36+
time.sleep(tiempo_preparacion)
37+
38+
# Notificar que el plato está listo
39+
print(
40+
f"El plato {nombre_plato} está listo después de {tiempo_preparacion} segundos."
41+
)
42+
callback_listo(nombre_plato)
43+
44+
# Simular tiempo de entrega
45+
tiempo_entrega = random.randint(1, 10)
46+
time.sleep(tiempo_entrega)
47+
48+
# Notificar que el plato ha sido entregado
49+
print(
50+
f"El plato {nombre_plato} ha sido entregado después de {tiempo_entrega} segundos."
51+
)
52+
callback_entrega(nombre_plato)
53+
54+
55+
# Callbacks
56+
def confirmacion_pedido(nombre_plato):
57+
print(
58+
f"Confirmación: El pedido para {nombre_plato} ha sido recibido y está en proceso."
59+
)
60+
61+
62+
def plato_listo(nombre_plato):
63+
print(f"Notificación: El pedido para {nombre_plato} está listo para servir.")
64+
65+
66+
def entrega_pedido(nombre_plato):
67+
print(f"Notificación: El pedido para {nombre_plato} ha sido entregado al cliente.")
68+
69+
70+
# Ejemplo
71+
procesar_pedido("Pizza", confirmacion_pedido, plato_listo, entrega_pedido)
72+
procesar_pedido("Hamburguesa", confirmacion_pedido, plato_listo, entrega_pedido)
73+
procesar_pedido("Ensalada", confirmacion_pedido, plato_listo, entrega_pedido)

0 commit comments

Comments
 (0)