Subclassing array
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Thu May 4 17:49:58 EDT 2006
Sion Arrowsmith a écrit :
> Alex Martelli <aleaxit at yahoo.com> wrote:
>
>>TG <girodt at gmail.com> wrote:
>>
>>>When I call Vector.__init__() in Stimulus, doesn't it also call __new__
>>>? I don't understand the detail of callings to __new__ and __init__ in
>>>python inheritance ...
>>
>>Calling a (new-style) class does __new__ first, THEN calls the class's
>>__init__ on the resulting instance -- and the arguments you're passing
>>when calling the class go to both __new__ and __init__.
>
>
> ... so you might want something like:
>
> class Vector(array):
> def __new__(cls,*args):
> return super(Vector,cls).__new__(cls,'f')
>
And if you want to support named arguments:
class Vector(array):
def __new__(cls,*args, **kw):
return super(Vector,cls).__new__(cls,'f')
More information about the Python-list
mailing list