On 8/29/13, Chema Cortes <pych...@gmail.com> wrote: > El día 29 de agosto de 2013 08:24, Olemis Lang <ole...@gmail.com> escribió: [...] >> razón por la cual estaba creyendo conveniente tener el equivalente d >> (Scala) >> >> new Class() with Trait1 with Trait2 with ... Trait_n{ >> def transform(obj: String): obj.toLower() >> } >> >> con una sintaxis más o menos así >> >> cls = Trait1(Trait2(... Trait_n(Class))) >> obj = cls() > > No entiendo bien. La versión "decorador" que te había puesto puede > hacer este "encadenado": > > cls = Trait1.register(Trait2.register(....Trait_n.register(Class))) > > Si lo quieres más práctico, cambia el método register por un método > __call__ >
sí , lo q trataba d decir q el ejemplo está bastanate bien , solo q le faltaría un detalle para no copiar los atributos del trait en el namespace de la definición local de la clase , sino resolverlos dinámicamente à la MRO. ;) > Otra cosa distinta es que quieras crear clases anónimas como en scala. > Pero, según Guido, éso es sólo para listos. :-P > <joke> ¡ uso Python ! soy muy listo :P </joke> [...] -- Regards, Olemis - @olemislc Apache™ Bloodhound contributor http://issues.apache.org/bloodhound http://blood-hound.net Blog ES: http://simelo-es.blogspot.com/ Blog EN: http://simelo-en.blogspot.com/ Featured article: Google Zoo - http://goo.gl/fb/rEI8e _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/