The output is:
Class A
Class B
printout
Given code:
class A(object):
def __init__(self):
print "Class A"
def printout(self):
print "printout"
class B(A):
def __init__(self):
print "Class B"
def main():
myA = A()
myB = B()
myB.printout()
if __name__ == '__main__':
main()
I was hoping for:
Class A
Class A
Class B
printout
as result… :/
It’s because you did not call the superclass’s
__init__.In Python 3.x you could use
super().__init__()instead ofA.__init__(self), but you’re still explicitly invoking the superclass’s__init__.