"""
>>> ================================ RESTART ================================
>>>
---------------------------------------- Python 2.1
Jonh Doe
My name is Jonh Doe
Jane Doe, 23
My name is Jane Doe, and I'm 23 years old
---------------------------------------- Python 2.2
Jonh Doe
My name is Jonh Doe
Jane Doe, 23
My name is Jane Doe, and I'm 23 years old
---------------------------------------- multiple inheritance
Father: Madam, I'm Adam
Mother: I'm 23 years old
Son: Madam, I'm John Doe
Daughter: I'm 5 years old
"""
##--------------------------------------- Python 2.1
class Parent:
def __init__(self, name):
self.name = name
def __str__(self):
return "%s"%self.name
def show(self):
return "My name is %s"%self.name
class Child(Parent):
def __init__(self, name, age):
Parent.__init__(self, name)
self.age = age
def __str__(self):
return "%s, %d"%(
Parent.__str__(self), self.age)
def show(self):
return "%s, and I'm %d years old"%(
Parent.show(self), self.age)
print "-"*40,"Python 2.1"
e = Parent("Jonh Doe")
print e; print e.show()
e = Child("Jane Doe", 23)
print e; print e.show()
##---------------------------------------- Python 2.2
class Parent(object):
def __init__(self, name):
self.name = name
def __str__(self):
return "%s"%self.name
def show(self):
return "My name is %s"%self.name
class Child(Parent):
def __init__(self, name, age):
super(Child, self).__init__(name)
self.age = age
def __str__(self):
return "%s, %d"%(
super(Child, self).__str__(), self.age)
def show(self):
return "%s, and I'm %d years old"%(
super(Child, self).show(), self.age)
print "-"*40,"Python 2.2"
e = Parent("Jonh Doe")
print e; print e.show()
e = Child("Jane Doe", 23)
print e; print e.show()
##---------------------------------------- multiple inheritance
class Father(object):
def __init__(self):
self.name = "Adam"
def show(self):
return "Madam, I'm %s"%self.name
class Mother(object):
def __init__(self):
self.age = 23
def show(self):
return "I'm %d years old"%self.age
class Son(Father, Mother):
def __init__(self, name, age):
self.name = name
self.age = age
def show(self):
return super(self.__class__, self).show()
class Daughter(Mother, Father):
def __init__(self, name, age):
self.name = name
self.age = age
def show(self):
return super(self.__class__, self).show()
print "-"*40,"multiple inheritance"
for e in [
Father(), Mother(),
Son("John Doe", 4), Daughter("Jane Doe", 5),
]:
print "%s: %s"%(e.__class__.__name__, e.show())
##