You've already forked Curso-lenguaje-python
Restructure content and add notes from HolaMundo
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
70
python-total/dia_08/07_decoradores.py
Normal file
70
python-total/dia_08/07_decoradores.py
Normal file
@@ -0,0 +1,70 @@
|
||||
"""
|
||||
Decoradores
|
||||
|
||||
Empiezan con @
|
||||
|
||||
Son funciones que modifican funciones.
|
||||
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def cambiar_letras(tipo):
|
||||
"""
|
||||
Esto sirve para explicar
|
||||
una función dentro de otra
|
||||
"""
|
||||
def mayusculas(text):
|
||||
print(text.upper())
|
||||
|
||||
def minusculas(text):
|
||||
print(text.lower())
|
||||
|
||||
if tipo == "may":
|
||||
return mayusculas
|
||||
elif tipo == "min":
|
||||
return minusculas
|
||||
|
||||
|
||||
operacion = cambiar_letras('may')
|
||||
|
||||
operacion('probando')
|
||||
|
||||
# Ahora vamos a crear un decorador
|
||||
|
||||
|
||||
def decorar_saludo(funcion):
|
||||
""" Una función con funciones dentro """
|
||||
def otra_funcion(palabra):
|
||||
print('Hola')
|
||||
funcion(palabra)
|
||||
print('adios')
|
||||
|
||||
return otra_funcion
|
||||
|
||||
# Ahora vamos a crear dos funciones
|
||||
# una decorada y la otra no
|
||||
|
||||
|
||||
@decorar_saludo
|
||||
def trabajando(lugar):
|
||||
print(f'Estoy trabajando en {lugar}....')
|
||||
|
||||
|
||||
def durmiendo(lugar):
|
||||
print(f'Estoy durmiendo en {lugar}')
|
||||
|
||||
|
||||
trabajando("Python")
|
||||
|
||||
durmiendo('la cama')
|
||||
|
||||
|
||||
print()
|
||||
|
||||
# Ahora vamos a usar el decorador
|
||||
# directamente en una variable
|
||||
|
||||
durmiendo_decorado = decorar_saludo(durmiendo)
|
||||
|
||||
durmiendo_decorado('en la playa')
|
||||
Reference in New Issue
Block a user