-
check_circle_outlineMódulo 1 | 8 clases
Introducción
expand_more -
check_circle_outlineMódulo 2 | 7 clases
Conceptos Básicos
expand_more -
check_circle_outlineMódulo 3 | 6 clases
Listas
expand_more -
check_circle_outlineMódulo 4 | 6 clases
Tuplas
expand_more -
check_circle_outlineMódulo 5 | 7 clases
Cadenas
expand_more -
check_circle_outlineMódulo 6 | 6 clases
Diccionarios
expand_more -
check_circle_outlineMódulo 7 | 9 clases
Ciclos y Condicionales
expand_more -
check_circle_outlineMódulo 8 | 14 clases
Funciones
expand_more-
done_all
Clase 1
Definir funciones
-
done_all
Clase 2
Múltiples valores de entrada y salida
-
done_all
Clase 3
Recibir N cantidad de parámetros
-
done_all
Clase 4
Args keyword
-
done_all
Clase 5
Formas de terminar una función
-
done_all
Clase 6
Alcance global
-
done_all
Clase 7
Expresiones lambdas
-
done_all
Clase 8
lambdas python
-
done_all
Clase 9
Función map
-
done_all
Clase 10
Funciones anidadas
-
done_all
Clase 11
Closures
-
done_all
Clase 12
Decoradores
-
done_all
Clase 13
Generadores
-
done_all
Clase 14
Documentación de las funciones
-
-
check_circle_outlineMódulo 9 | 12 clases
Clases
expand_more -
check_circle_outlineMódulo 10 | 8 clases
Módulos y Paquetes
expand_more -
check_circle_outlineMódulo 11 | 5 clases
Extras
expand_more -
check_circle_outlineMódulo 12.-
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-
9 comentario(s)
personalmente no me resuelve la duda de usar o llamar a una función **Decorador** entiendo que hacen lo mismo y que tecnicamente seria como usar funciones anidadas (que relaciona una función dentro de otra )
Cuando llamamos a la función B realmente estamos ejecutando el código que se encuentra dentro de la función C, solo debemos seguir la estructura básica:
def funcA(function):
def func_C():
#CÓDIGO QUE SE EJECUTA AL LLAMAR A 'func_B'
return func_C
@funcA
def func_B():
print('función a decorar')
func_B()
def func_C():
#CÓDIGO QUE SE EJECUTA AL LLAMAR A 'func_B'
return func_C
@funcA
def func_B():
print('función a decorar')
func_B()
En resumen:
def decorador(funcion): def salida(*args, **kwargs): #decoración output = funcion(*args, **kwargs) #llamada a función (envía argumentos si los hay) return output return salida @decorador def hi(): print('hello world!') @decorador def suma(val1, val2): return val1 + val2 hi() #hello word! print(suma(2, 3)) #5
Esta parte de decoradores se me complico, así que tuve que recurrír a otras opciones para entender su funcionalidad:
https://www.youtube.com/watch?v=DQXm6bIZgvk
El ejemplo es clarísimo!
solo tengo una pregunta si el return lo dejo al mismo nivel del print dentro de la funcion nueva_funcion me da el siguiente error si alguien me ayuda gracias
Traceback (most recent call last):
File "decorador.py", line 23, in <module>
funciona_decorar()
TypeError: 'NoneType' object is not callable
Traceback (most recent call last):
File "decorador.py", line 23, in <module>
funciona_decorar()
TypeError: 'NoneType' object is not callable
Hola, después de usar el arroba:
@funcion_a
def funcion_b():
pass
Ya no puedo usar la funcion_b normalmente, verdad? es decir sin las nuevas características del decorador, si es así, entonces los decoradores sirven para mantener y actualizar módulos de un proyecto ya hecho, cierto?
saludos.
@funcion_a
def funcion_b():
pass
Ya no puedo usar la funcion_b normalmente, verdad? es decir sin las nuevas características del decorador, si es así, entonces los decoradores sirven para mantener y actualizar módulos de un proyecto ya hecho, cierto?
saludos.