On 20-apr-2006, at 9:45, Chris Niekel wrote: > On Thu, Apr 20, 2006 at 02:07:15AM +0200, Guido Wesdorp wrote: >> Syntax is super(<class>, <instance>), voorbeeld: > > Dat dacht ik ook, maar ik krijg een error. > >> def test3(test): >> def __init__(self): >> super(test3, self).__init__() > >>>> class test5(test): > ... def __init__(self): > ... super(test5,self).__init__() > ... print 'test5' > ... >>>> t = test5() > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "<stdin>", line 3, in __init__ > TypeError: super() argument 1 must be type, not classobj > > En wat nou het verschil tussen een type en een classobj is, geen idee. > Dit gaat fout in python 2.3 en 2.4
Super werkt alleen als de klasse een new-style klasse is. Dat houdt in dit geval in dat test een subklasse van object moet zijn. Ronald _______________________________________________ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl