python 3 problem: how to convert an extension method into a class Method

Robin Becker robin at reportlab.com
Wed Feb 27 05:36:27 EST 2013


On 26/02/2013 18:38, Peter Otten wrote:
> Robin Becker wrote:
...........3:
>
> $ python -m timeit -s 'from new import instancemethod
>> from math import sqrt
>> class A(int): pass
>> A.m = instancemethod(sqrt, None, A)
>> a = A(42)
>> ' 'a.m()'
> 1000000 loops, best of 3: 0.5 usec per loop
> $ python -m timeit -s 'from math import sqrt
>> class A(int):
>>      def m(self):
>>          return sqrt(self)
>> a = A(42)
>> ' 'a.m()'
> 1000000 loops, best of 3: 0.473 usec per loop
>
>
this analysis might be relevant if I wanted to use sqrt. However, in my case the 
method takes



                       py  C
utf8 bytes            50  20 usec
unicode               39  15

here py refers to a native python method and C  to the extension method after 
adding to the class. Both are called via an instance of the class.
-- 
Robin Becker



More information about the Python-list mailing list