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