Skip to content

Commit 7ba0c0b

Browse files
authored
Merge pull request mouredev#4715 from FedeAirala/main
#21 - Python
2 parents 21c4ac7 + 16dbcc5 commit 7ba0c0b

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# #21 CALLBACKS
2+
"""
3+
* EJERCICIO:
4+
* Explora el concepto de callback en tu lenguaje creando un ejemplo
5+
* simple (a tu elección) que muestre su funcionamiento.
6+
"""
7+
8+
9+
10+
def saludar(name):
11+
return (f"Hola {name}")
12+
13+
def ejecutar_saludo(saluda, name):
14+
return saluda(name)
15+
16+
print (ejecutar_saludo(saludar,"Fede"))
17+
18+
num = (8,7)
19+
20+
def multiplicar(num):
21+
return num[0]*num[1]
22+
23+
def multiplicados(mult,n):
24+
return mult(n)
25+
26+
print (multiplicados(multiplicar,num))
27+
28+
29+
"""
30+
* DIFICULTAD EXTRA (opcional):
31+
* Crea un simulador de pedidos de un restaurante utilizando callbacks.
32+
* Estará formado por una función que procesa pedidos.
33+
* Debe aceptar el nombre del plato, una callback de confirmación, una
34+
* de listo y otra de entrega.
35+
* - Debe imprimir un confirmación cuando empiece el procesamiento.
36+
* - Debe simular un tiempo aleatorio entre 1 a 10 segundos entre
37+
* procesos.
38+
* - Debe invocar a cada callback siguiendo un orden de procesado.
39+
* - Debe notificar que el plato está listo o ha sido entregado.
40+
"""
41+
42+
import time
43+
import random
44+
import threading
45+
46+
def pedidos(plato,confirmado,listo,entregado):
47+
def ejecutar():
48+
confirmado(plato)
49+
time.sleep(random.randint(1,10))
50+
listo(plato)
51+
time.sleep(random.randint(1,10))
52+
entregado(plato)
53+
threading.Thread(target=ejecutar).start()
54+
55+
56+
def confirmado(plato):
57+
print (f"El pedido de {plato} ha sido confirmado")
58+
59+
def listo(plato):
60+
print (f"El pedido de {plato} está listo")
61+
62+
def entregado(plato):
63+
print (f"El pedido de {plato} ha sido entregado")
64+
65+
pedidos ("Pizza",confirmado,listo,entregado)
66+
pedidos ("Hamburguesa",confirmado,listo,entregado)
67+
pedidos ("Empanadas",confirmado,listo,entregado)

0 commit comments

Comments
 (0)