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
Hoja de referencia
Los decoradores modifican o mejoran las funciones sin cambiar su código original utilizando el símbolo @.
Estructura básica de un decorador:
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperAplicar un decorador usando @:
@my_decorator
def say_hello():
print("Hello!")La sintaxis @my_decorator es equivalente a:
say_hello = my_decorator(say_hello)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