Skip to content

Commit 6da2994

Browse files
Diego Rojas MuñozDiego Rojas Muñoz
Diego Rojas Muñoz
authored and
Diego Rojas Muñoz
committed
mouredev#21 - Python
1 parent 6a31e12 commit 6da2994

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
"""
2+
Callbacks
3+
"""
4+
5+
# Es una funcion que pasa como argumento a otra
6+
# La ultima funcion llama de vuelta a la otra funcion
7+
# Es una forma de manejar tareas asincronicas
8+
9+
# Un callback serai como darle una tareas a un amigo y que este me avise cuando termino
10+
11+
def saludar(nombre: str):
12+
print(f'Hola {nombre}.')
13+
14+
def ejecutar_callback(funcion, argumento):
15+
print('Voy a ejecutar el callback ...')
16+
funcion(argumento)
17+
18+
ejecutar_callback(saludar, 'Juan')
19+
20+
21+
"""
22+
Usos
23+
"""
24+
25+
# Programación asíncrona: Por ejemplo, en manejo de eventos o cuando esperas que algo termine (como una descarga).
26+
# Librerías o frameworks: Piensa en una interfaz gráfica (como Tkinter) donde defines qué pasa cuando haces clic en un botón.
27+
# Procesamiento de datos: Como aplicar una función personalizada a cada elemento de una lista.
28+
29+
30+
"""
31+
Ejemplo:
32+
33+
Supóngamos que pedimos una pizza por teléfono. La pizzería nos dice: "Te llamamos cuando la pizza esté lista". Aquí, no sabes exactamente cuándo va a estar lista, pero confíamos en que nos avisarán. Ese "te llamamos" es el callback.
34+
"""
35+
36+
# Creamos la funcion que prepara la pizza y nos avisa cuando este lista
37+
def pedir_pizza(callback):
38+
print('Preparando la pizza...')
39+
for _ in range(3):
40+
print('Hornenando la pizza...')
41+
callback()
42+
43+
# Creamos la funcion que avisa cuando la pizza este lista
44+
def pizza_lista():
45+
print('La pizza esta lista, ven a recogerla.')
46+
47+
# Le damos la orden a la pizzeria de preparla y de avisarnos
48+
pedir_pizza(pizza_lista)
49+
50+
51+
"""
52+
Extra
53+
"""
54+
55+
import random
56+
import time
57+
import threading
58+
59+
60+
def proceso_pedidos():
61+
nombre_plato = input('Hola, ingresa el nombre del plato que deseas: ')
62+
print(f'El plato que elegiste fue {nombre_plato}')
63+
confirmacion(nombre_plato)
64+
time.sleep(random.randint(1, 10))
65+
listo(nombre_plato)
66+
time.sleep(random.randint(1, 10))
67+
entrega(nombre_plato)
68+
69+
threading.Thread(target=proceso_pedidos).start()
70+
71+
def confirmacion(nombre_plato):
72+
print(f'Tu plato {nombre_plato} esta en preparacion.')
73+
74+
def listo(nombre_plato):
75+
print(f'Tu pedido de {nombre_plato} esta listo.')
76+
print('Lo estamos empacando')
77+
78+
def entrega(nombre_plato):
79+
print(f'Gracias por tu espera. Tu plato {nombre_plato} ha sido entregado.')
80+
81+
82+
proceso_pedidos()

0 commit comments

Comments
 (0)