> > doesn't work neither in Python 2.7, nor 3.2 (by the way I can't use Python 
> > 3 for my application).
>  
> Are you using Windows? Over here on 3.3 on Linux it does. Not on 2.7 though.

No I am using Ubuntu (12.04, 64 bit).. maybe things changed from 3.2 to 3.3?
 
> from multiprocessing import Pool
> 
> from functools import partial
> 
> 
> 
> class A(object):
> 
>     def __init__(self,x):
> 
>         self.value = x
> 
>     def fun(self,x):
> 
>         return self.value**x
> 
> 
> 
> def _getattr_proxy_partialable(instance, name, arg):
> 
>     return getattr(instance, name)(arg)
> 
> 
> 
> def getattr_proxy(instance, name):
> 
>     """
> 
>     A version of getattr that returns a proxy function that can
> 
>     be pickled. Only function calls will work on the proxy.
> 
>     """
> 
>     return partial(_getattr_proxy_partialable, instance, name)
> 
> 
> 
> l = range(100)
> 
> p = Pool(4)
> 
> op = p.map(getattr_proxy(A(3), "fun"), l)
> 
> print(op)

I can't try it now, I'll let you know later if it works!
(Though just by reading I can't really understand what the code does).

Thanks for the help,
Luca
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to