[Python-Dev] Dinamically set __call__ method

dieter dieter at handshake.de
Sat Nov 8 07:50:41 CET 2014


Ethan Furman <ethan at stoneleaf.us> writes:

> On 11/06/2014 10:59 PM, dieter wrote:
>> John Ladasky writes:
>>> On Tuesday, November 4, 2014 11:12:31 AM UTC-8, Ethan Furman wrote:
>>>
>>>> If you really absolutely positively have to have the signature be correct for each instance, you may to either look at a
>>>> function creating factory, a class creating factory, or a meta-class.
>>>
>>> +1.  Overriding __call__() within the class definition, over and over again, with different function, looks awkward to me.
>>
>> A possibility to get the original approach implemented looks like:
>>
>>    make "__call__" a descriptor on the class which looks up the real
>>    method on the instance.
>
> This still wouldn't get the signatrue correct, though.

Why not? Once the descriptor is resolved, you get the final
instance method - with the correct signature.




More information about the Python-list mailing list