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

Olemis Lang olemis en gmail.com
Lun Oct 21 23:40:55 CEST 2013


Hay varias estructuras formalizadas para hacer estas cosas. Yo prefiero:

- Los traits (como en SCALA)
- El patron d dise~no decorator del GoF

Los decoradores d clases en Python son mas bien un artificio, una
estructura sintactica.

Sent from Android

--
Regards

Olemis - @olemislc
Blog-ES : http://simelo-es.blogspot.com
Blog-EN : http://simelo-en.blogspot.com
Projects : http://blood-hound.net
 On Oct 21, 2013 9:37 AM, "Ander Garmendia" <kelertxiki en gmail.com> wrote:

> 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.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20131021/7e91e875/attachment.html>


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