Re: [pyar] Monads en Python

Top Page
Attachments:
+ (text/plain)
+ (text/html)

Reply to this message
Author: Juanjo Conti
Date:  
To: pyar
Subject: Re: [pyar] Monads en Python
El 3 de febrero de 2010 23:51, Juanjo Conti <jjconti@???> escribió:

> El día 3 de febrero de 2010 23:06, Marcelo Rinesi
> <marcelo.rinesi@???> escribió:
> >
> > Una pregunta: ¿es posible decorar funciones "por default" de una
> > manera más o menos elegante? Por ejemplo, hacer algo de manera tal que
> > a toda función que uno defina se le aplique automáticamente el
> > decorador monad_aware. (No digo que sea una buena idea hacerlo, o
> > siquiera que quiera hacerlo, pero al menos desde un punto de vista
> > teórico, la posibilidad de hackear de manera más implícita el
> > mecanismo de aplicación de funciones suena bastante interesante.)
> >
>
> Al final de tu módulo, donde tenés las funciones que querés decorar
> automáticamente, podés hacer:
>
> import inspect
> from monads import monad_aware
>
> for n,v in locals().items():
> if inspect.isfunction(v) and n != 'monad_aware': # la segunda
> condicion es para no aplicar el decorador al decorador
> locals()[n] = monad_aware(v)
>
> No está probado, pero creo que debería funcionar.
>
>

Parece que anda :)

El ejemplo está muy bueno para los que están empezando con Python y quieren
ver qué cosas uno puede llegar a hacer, cosas que al desconocerla un diría
que son mágicas ;-)

Dejo un post explicándolo
http://www.juanjoconti.com.ar/2010/02/06/aplicar-un-decorador-a-todas-las-funciones-de-un-modulo-en-python/

Saludos!
-- 
Juanjo Conti
blog: http://www.juanjoconti.com.ar