[Numpy-discussion] Vectorizing a class method

Wojciech Śmigaj puddleglum at o2.pl
Wed Feb 14 15:11:00 EST 2007


Anne Archibald wrote:
> The appropriate spelling for this, in modern pythons, is
> 
> class X:
>   @vectorize
>   def func(self, n):
>     return 2*n
> 
> Not that it makes it work any better.
> 
> There's no reason vectorize couldn't be made to do the Right Thing
> when handed (bound and unbound) methods, for example by examining
> X.func.im_self, X.func.im_class and X.func.im_func attributes. 

This magic is well above my current level of expertise in Python, but 
perhaps one day I'll try to do it. Thanks for pointing me in this direction.

 > I can't imagine a situation where a method would want to be vectorized
 > over its self parameter, or at least, not by default.

Yes, I agree. I thought it would be harmless, though.

Anyway, since it seems it is not possible to vectorize() a method with 
today's NumPy, I think the class' docstring, which says "[...] 
somefunction -- a Python function or method" is rather misleading. 
Perhaps it ought to be changed?

Best regards,
Wojciech Smigaj



More information about the NumPy-Discussion mailing list