[Python-es] ¿ Injección de código con decoradores o herencia ?

Ander Garmendia kelertxiki en gmail.com
Lun Oct 21 15:37:20 CEST 2013


Buenas,

estoy 'jugando' con decoradores y haciendo diferentes pruebas y tengo
una duda que quizá alguien me pueda aclarar.

Digamos que tenemos una clase ( llamemosla B ) a la que queremos
añadir una funcionalidad (llamemosla F). El método clásico sería
heredar desde la clase base ( B ) y crear una nueva clase ( llamemosla
C ) que implementase nuestra funcionalidad ( F ). Hasta aquí todo
normal y corriente.

Ahora llega python y nos ofrece los decoradores, por lo tanto, podemos
crear una clase decoradora ( llamemosla D ) que implemente la
funcionalidad ( F ) y que decorando una clase ( volvamos a la clase B
), añade la funcionalidad F en la clase B sin necesidad de herencias
de ningún tipo.

Visto así, todo parece muy cómodo, se escribe menos código, hay menos
clases implicadas, etc.
Y como todo parece muy bonito, aquí surge mi duda: ¿Está esta practica
extendida al escribir código en python ( es pythonico y aceptable ) ?
¿ o es mas una prueba conceptual ?

Gracias de antemano y un saludo.

Ander.


Más información sobre la lista de distribución Python-es