using super

Matt Goodall matt at pollenation.net
Sun Oct 19 06:48:43 EDT 2003


sashan wrote:

> I'm trying to use super but keep getting the following error
>
> E:\Code\Python\Nexus\Player>python ./super_test.py
> Traceback (most recent call last):
>  File "./super_test.py", line 14, in ?
>    main()
>  File "./super_test.py", line 11, in main
>    b = B()
>  File "./super_test.py", line 7, in __init__
>    super(B, self).__init()
> TypeError: super() argument 1 must be type, not classobj
>
> Here's the code:
> class A:
>    def __init__(self):
>        print 'A'
>       class B(A):
>    def __init__(self):
>        super(B, self).__init()
>        print 'B'
>       def main():
>    b = B()
>   if __name__ == '__main__':
>    main()
>  

super() only works for "new style" classes, that is classes that extend 
Python's object type. class A(object) should solve your problem.

Cheers, Matt

-- 
Matt Goodall, Pollenation Internet Ltd
w: http://www.pollenation.net
e: matt at pollenation.net







More information about the Python-list mailing list