Anders M. Mikkelsen wrote: > I have some problems getting 'super' working with IronPython. > Running the following simple script: > > class A: > def Foo(self): > pass > > class B(A): > def Foo(self): > super(B, self).Foo() > > B().Foo() > yields: > > TypeError: expected type, got classobj > > Any ideas?
Super only works for new-style classes - if you change class A to inherit from object super will work correctly. Classes with no superclass list are created as old-style classes, which have slightly different semantics. In general, all new classes you create should inherit from object, or some other built-in type, so that super, property and __metaclasss__ will work correctly for them. Old-style classes are only really kept for backwards compatibility, and I think they're going away at some version in the future - at which point "class A:" will define a normal new-style class. Cheers, Christian -- Christian Muirhead Resolver Systems [EMAIL PROTECTED] Office address: 17a Clerkenwell Road, London EC1M 5RD, UK Registered address: 843 Finchley Road, London NW11 8NA, UK Resolver Systems Limited is registered in England and Wales as company number 5467329. VAT No. GB 893 5643 79 _______________________________________________ users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
