Efficient Wrappers for Instance Methods

Peter Otten __peter__ at web.de
Wed Feb 3 16:19:35 EST 2016


Sven R. Kunze wrote:

> On 03.02.2016 22:06, Bernardo Sulzbach wrote:
>> I may say something wrong, but this is what I see going on:
>>
>> When you get "replace = heapreplace" you are creating a data attribute
>> called replace (you will access it by self.replace or
>> variable.replace) that is an alias for heapreplace.
>>
>> When you call x.replace(2) you are calling heapreplace(2), NOT
>> heapreplace(self, 2).
> 
> It is exactly as you've described it.
> 
> Question now is how can I circumvent/shortcut that? There are several
> proposals out there in the Web but none of them works. :-/

You could try putting

self.heappush = functools.partial(heapq.heappush, self)

into the initializer.



More information about the Python-list mailing list