定义一个在校人的基类,分别派生出教师和学生,然后放入列表中,实现多态。

#!/usr/bin/python
#Filename:inherit.py

class SchoolMember:
    '''Represents any school member.'''
    
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print '(Initialized SchoolMember:%s)'%self.name

    def tell(self):
        '''Tell my details'''
        print 'Name:"%s" Age:"%s"'%(self.name, self.age)

class Teacher(SchoolMember):
    '''Represents teacher.'''
    def __init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age)
        self.salary = salary
        print '(Initialized Teacher:%s)'%self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Salary:"%d"'%self.salary

class Student(SchoolMember):
    '''Represents a student.'''
    def __init__(self, name, age, marks):
        SchoolMember.__init__(self, name, age)
        self.marks = marks
        print '(Initialized Student:%s)'%self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Marks:"%d"'%self.marks

t = Teacher('Mrs.Shrividya', 40, 30000)
s = Student('Swaroop', 22, 75)

print

members = [t, s]
for member in members:
    member.tell()

print 'Done'