File tree 1 file changed +76
-0
lines changed
Roadmap/24 - DECORADORES/python
1 file changed +76
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ EJERCICIO:
3
+ Explora el concepto de "decorador" y muestra cómo crearlo con un
4
+ ejemplo genérico.
5
+
6
+ DIFICULTAD EXTRA(opcional):
7
+ Crea un decorador que sea capaz de contabilizar cuántas veces se ha
8
+ llamado a una función y aplicalo a una función de tu elección.
9
+
10
+ by adra-dev
11
+ """
12
+
13
+ """
14
+ Decoradores:
15
+ Un decorador es un modificador de un metodo o funcion que "envuelve"
16
+ el codigo de dicho metodo con instrucciones adicionales. Regularmente
17
+ vamos a hacer uso de los decoradores para extender el uso de una
18
+ funcion ya sea porque no podemos modificar la funcion o no es
19
+ conveniente hacerlo.
20
+
21
+ Los decoradores nos sirven para realizar tareas muy complejas y
22
+ repetitivas como lo son conectarse a una BD, enviar un email,
23
+ leer un archivo excel o cualquier tarea que se necesite realizar
24
+ antes o despues de llamar a la funcion a decorar.
25
+ """
26
+
27
+ def funcion_a (funcion_b ):
28
+
29
+ def funcion_c ():
30
+ print (">>> Antes del llamado." )
31
+ funcion_b ()
32
+ print (">>> Despues del llamado." )
33
+
34
+ return funcion_c
35
+
36
+
37
+ @funcion_a
38
+ def saludar ():
39
+ print ('Hola, nos encontramos en una fucnion' )
40
+
41
+ saludar ()
42
+
43
+
44
+ """
45
+ Extra
46
+ """
47
+
48
+ def print_call_counter (function ):
49
+ def counter_function ():
50
+ counter_function .call_count += 1
51
+ print (
52
+ f"La funcion '{ function .__name__ } ' se ha llamado { counter_function .call_count } veces." )
53
+ return function
54
+
55
+ counter_function .call_count = 0
56
+ return counter_function
57
+
58
+
59
+
60
+ @print_call_counter
61
+ def example_function ():
62
+ pass
63
+
64
+
65
+ @print_call_counter
66
+ def saludar ():
67
+ print ('Hola, nos encontramos en una fucnion' )
68
+
69
+
70
+ example_function ()
71
+ saludar ()
72
+ saludar ()
73
+ saludar ()
74
+ example_function ()
75
+ saludar ()
76
+ saludar ()
You can’t perform that action at this time.
0 commit comments