Introducción a los decoradores
Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 9 de 64.
Los decoradores son una forma de modificar o mejorar funciones y clases sin cambiar su código original. Utilizan el símbolo @.
Aquí hay un ejemplo de un decorador simple:
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperAplica el decorador usando @:
@my_decorator
def say_hello():
print("Hello!")Llama a la función decorada:
say_hello()Resultado:
Before function runs
Hello!
After function runsEl @my_decorator es equivalente a escribir:
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)Pero la sintaxis @ es mucho más limpia y más fácil de leer.
Punto clave: Los decoradores envuelven funciones para añadir funcionalidad adicional sin modificar el código de la función original
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Object Oriented Programming
1Fundamentos de la POO
Archivos externosIntroducción a la POOClases vs ObjetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Resumen - Calculadora simple4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosResumen - Jerarquía de empleados7Métodos especiales
Introducción a los métodos mágicosSobrecarga de operadoresMétodos mágicos de contenedoresRepaso - Lista personalizada10Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy2Decoradores
Introducción a los decoradoresDecorador propertyDecorador de métodos estáticosDecorador de métodos de clase5Polimorfismo
Sobreescritura de métodos revisitadaDuck TypingClases y métodos abstractosDiseño de interfacesResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaMixinsMétodos estáticos y de claseDecoradores de claseGestores de contexto11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Propiedades de clase
Variables de instancia vs de claseDecoradores de propiedadesAtributos privadosResumen - Gestor de cuentas bancarias