面向对象实例-继承-学校

#Author:lei
class School(object):
    def __init__(self,name,addr):
        self.name=name
        self.addr=addr
        self.students=[]
        self.staffs=[]

    def enroll(self,stu_obj):
        print("为学员%s办理注册手续"%stu_obj.name)
        self.students.append(stu_obj)

    def hire(self,staff_obj):
        self.staffs.append(staff_obj)
        print("雇佣新员工%s" %staff_obj.name)

class SchoolMember(object):
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex

    def tell(self):
        pass



class Teacher(SchoolMember):
    def __init__(self,name,age,sex,salary,course):
        super(Teacher,self).__init__(name,age,sex)
        self.salary=salary
        self.course=course

    def tell(self):
        print('''
        --- info of teacher:%s ---
        Name:%s
        Age:%s
        Sex:%s
        Salary:%s
        Course:%s
        '''%(self.name,self.name,self.age,self.sex,self.salary,self.course))

    def teach(self):
        print("%s is teaching course %s"%(self.name,self.course))

class Student(SchoolMember):
    def __init__(self,name,age,sex,stu_id,grade):
        super(Student,self).__init__(name,age,sex)
        self.stu_id=stu_id
        self.grade=grade

    def tell(self):
        print('''
        --- info of teacher:%s ---
        Name:%s
        Age:%s
        Sex:%s
        Stu_id:%s
        Grade:%s
        '''%(self.name,self.name,self.age,self.sex,self.stu_id,self.grade))

    def pay_tuition(self,amount):
        print("%s has paid tuition for $%s"%(self.name,amount))


school=School("老男孩教育","沙河")
t1=Teacher("Old boy",56,"MF",2000000,"Linux") #创建实例
t2=Teacher("Alex",22,"M",3000,"PythonDevops")

s1=Student("Chengronghua",26,"MF",1001,"PythonDevops")
s2=Student("徐良伟",19,"M",1002,"Linux")

t1.tell()
s1.tell()

school.hire(t1)  #实例调用方法
school.enroll(s1)
school.enroll(s2)

print(school.students) #打印生成的实例 即打印生成的对象
print(school.staffs)
school.staffs[0].teach()

for stu in school.students: #实例调用方法
    stu.pay_tuition(5000)

猜你喜欢

转载自blog.51cto.com/13707996/2329313