¿Cuál es la vida útil prevista de un decorador de Python?
Mi pregunta gira en torno a la vida útil prevista de un decorador Python implementado. Derealpython.org dice:
"Por definición, un decorador es una función que toma otra función y extiende el comportamiento de esta última sin modificarla explícitamente".
Para mí, parece que los decoradores se usan con bastante frecuencia en ejemplos en línea para modificar o ampliar temporalmente una función de Python, como en los ejemplos de formato html.
Ejemplo:
Digamos que trabajo en una empresa de desarrollo web y en la parte superior de todas mis páginas web llamo a esta función Pythonpage_welcome()
.
def page_welcome():
return "Welcome to XYZ's company webpage!"
Ahora, algún desarrollador se une a la compañía y decide que deberíamos hacer que esto se destaque más modificando la función con algunosnegrita ycursiva.
def makebold(fn):
def wrapped():
return "<b>" + fn() + "</b>"
return wrapped
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped
@makebold
@makeitalic
def page_welcome():
return "Welcome to XYZ's company webpage!"
Si decidimos que este cambio es permanente, ¿son los decoradores la mejor manera de dejar esta modificación permanente?
Nota: El ejemplo anterior es el ejemplo del decorador de este enlace (modificado ligeramente):¿Cómo hacer una cadena de decoradores de funciones?