Introducción a los decoradores
Parte de la sección Programación orientada a objetos 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. Usan el símbolo @.
Aquí tienes un ejemplo de un decorador sencillo:
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()Salida:
Before function runs
Hello!
After function runsEl @my_decorator equivale a escribir:
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)Pero la sintaxis @ es mucho más clara y fácil de leer.
Punto clave: los decoradores envuelven las 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 Programación orientada a objetos
1Fundamentos de la POO
Introducción a la POOArchivos externosClases vs. objetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Repaso: calculadora sencilla4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosRepaso: 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 de propiedadDecorador de método estáticoDecorador de método de clase5Polimorfismo
Repaso de la sobrescritura de métodosTipado patoClases y métodos abstractosDiseño de interfacesRepaso: calculadora de formas8Conceptos avanzados de POO
Composición frente a 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. variables de claseDecoradores de propiedadesAtributos privadosRepaso: gestor de cuentas bancariasPractica por tu cuenta: Compilador de Python online