Skip to content

Commit dd88b02

Browse files
author
Juan Pablo Patino Lopez
committed
Juanppdev - Reto #24 - python
1 parent 1215ef2 commit dd88b02

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
"""
2+
* EJERCICIO:
3+
* Explora el concepto de "decorador" y muestra cómo crearlo
4+
* con un ejemplo genérico.
5+
"""
6+
7+
# Los decoradores en Python son una forma de modificar el comportamiento de una función o método.
8+
# Son muy útiles para añadir funcionalidades adicionales de manera concisa y reutilizable.
9+
10+
# Definimos el decorador
11+
def mi_decorador(func):
12+
def envoltura(*args, **kwargs):
13+
print("Algo se está haciendo antes de llamar a la función")
14+
resultado = func(*args, **kwargs)
15+
print("Algo se está haciendo después de llamar a la función")
16+
return resultado
17+
return envoltura
18+
19+
# Usamos el decorador en una función
20+
@mi_decorador
21+
def saludar(nombre):
22+
print(f"Hola, {nombre}!")
23+
24+
# Llamamos a la función decorada
25+
saludar("Mundo")
26+
27+
28+
29+
"""
30+
* DIFICULTAD EXTRA (opcional):
31+
* Crea un decorador que sea capaz de contabilizar cuántas veces
32+
* se ha llamado a una función y aplícalo a una función de tu elección.
33+
"""
34+
35+
# Definimos el decorador
36+
def contador_llamadas(func):
37+
def envoltura(*args, **kwargs):
38+
envoltura.contador += 1
39+
print(f"La función {func.__name__} ha sido llamada {envoltura.contador} veces")
40+
return func(*args, **kwargs)
41+
envoltura.contador = 0
42+
return envoltura
43+
44+
# Usamos el decorador en una función
45+
@contador_llamadas
46+
def saludar(nombre):
47+
print(f"Hola, {nombre}!")
48+
49+
# Llamamos a la función decorada varias veces
50+
saludar("Mundo")
51+
saludar("Python")
52+
saludar("Decoradores")

0 commit comments

Comments
 (0)