Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Escritura de Decoradores Parametrizados | Dominio de los Iteradores y Decoradores en Python
Conceptos de Programación Funcional en Python

bookEscritura de Decoradores Parametrizados

Desliza para mostrar el menú

Cuando se desea que un decorador se comporte de manera diferente según alguna entrada, es necesario crear un decorador parametrizado. A diferencia de los decoradores regulares, que solo reciben la función como argumento, los decoradores parametrizados aceptan sus propios argumentos, lo que permite controlar su comportamiento de forma dinámica. Esto resulta especialmente útil cuando se quiere reutilizar un decorador en múltiples situaciones con diferentes configuraciones.

Estructura de un decorador parametrizado:

  1. La función externa acepta los argumentos del decorador;
  2. La función intermedia es el decorador real que recibe la función a decorar;
  3. La función interna envuelve y controla la ejecución de la función original.

Este enfoque por capas permite pasar argumentos al decorador, los cuales estarán disponibles cuando se llame a la función decorada.

12345678910111213141516171819202122
# Outer function: accepts the decorator argument 'times' def repeat(times): # The actual decorator that takes the function to be decorated def decorator(func): # Inner function: wraps and controls the execution of 'func' def wrapper(*args, **kwargs): result = None # Call the original function 'times' times for _ in range(times): result = func(*args, **kwargs) return result # Return the wrapper to replace the original function return wrapper # Return the decorator function return decorator # Apply the repeat decorator @repeat(3) def say_hello(): print("Hello!") say_hello()
copy

1. ¿En qué se diferencia un decorador parametrizado de un decorador regular?

2. ¿Por qué podrías querer pasar argumentos a un decorador?

question mark

¿En qué se diferencia un decorador parametrizado de un decorador regular?

Selecciona la respuesta correcta

question mark

¿Por qué podrías querer pasar argumentos a un decorador?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 3
some-alt