Basic misunderstanding on object creation

andrew cooke andrew at acooke.org
Wed May 13 10:42:15 EDT 2015


On Wednesday, 13 May 2015 11:36:12 UTC-3, Thomas Rachel wrote:
> Am 13.05.2015 um 15:25 schrieb andrew cooke:
>> >>>> class Foo:
> > ... def __new__(cls, *args, **kargs):
> > ... print('new', args, kargs)
> > ... super().__new__(cls, *args, **kargs)
>> > new (1,) {}
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > File "<stdin>", line 4, in __new__
> > TypeError: object() takes no parameters
>> object's __new__() dosn't take any parameters. So call it without arguments:
>> class Foo:
> def __new__(cls, *args, **kargs):
> print('new', args, kargs)
> super().__new__(cls)
>> (at least if we know that we inherit from object. Might be that this one 
> doesn't work very good with multiple inheritance...)
>>> Thomas

But then nothing will be passed to __init__ on the subclass.
Andrew


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /