By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,678 Members | 1,129 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,678 IT Pros & Developers. It's quick & easy.

using super

P: n/a
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()
Jul 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
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: ma**@pollenation.net

Jul 18 '05 #2

P: n/a
> Here's the code:

You will also need to correct:
super(B, self).__init()
to read
super(B, self).__init__()

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()


Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.