初識python: 繼承實例 - 學校、老師、學生

對學校、老師、學生作一個分類,並抽象成類。並實現各自的一些功能。代碼以下:python

父類1:學校app

# 學校
class School(object):
    def __init__(self,name,addr):
        self.name = name
        self.addr = addr
        self.students = []
        self.teachers = []

    # 註冊
    def stu_regin(self,stu_obj):
        print('給學員%s辦理註冊。'%stu_obj.name)
        self.students.append(stu_obj)

    # 入職
    def tec_regin(self,tec_obj):
        print('給老師%s辦理入職。'%tec_obj.name)
        self.teachers.append(tec_obj)
學校

父類2:學校成員ide

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

    def tell(self):
        print('學校成員信息。')
學校成員

子類1:老師spa

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

    def tell(self):
        print('''
        ---- %s老師的信息 ----
        姓名:%s
        年齡:%s
        課程:%s
        工資:%s
        '''%(self.name,self.name,self.age,self.course,self.salary))

    def teach(self):
        print('%s老師正在給學生上%s課'%(self.name,self.course))
老師

子類2:學生3d

# 學員
class Student(SchoolMember):
    def __init__(self,name,age,stu_id,class_id,fee):
        super(Student,self).__init__(name,age)
        self.stu_id = stu_id
        self.class_id = class_id
        self.fee = fee

    def tell(self):
        print('''
        ---- %s學生的信息 ----
        姓名:%s
        年齡:%s
        學籍號:%s
        班級:%s
        ''' % (self.name, self.name, self.age, self.stu_id, self.class_id))

    def pay_fee(self):
        print('%s交了%s元學費。'%(self.name,self.fee))
學生

實例化類:code

# 生成學校
sch = School('成都大學','成都')

# 生成老師
te1 = Teacher("張三",35,"python3",10000)
te2 = Teacher('李四','28','JAVA','10000')
te3 = Teacher('王五','25','C','10000')

# 生成學生
st1 = Student('李稍等','25','001','python入門班','8000')
st2 = Student('張撒旦','32','002','C入門班','5000')
st3 = Student('王而非','25','003','python入門班','8000')
實例化

查看老師信息,調用老師tell方法:blog

# 查看老師信息
te1.tell()

給老師辦理入職,調用學校的tec_regin方法:it

# 老師入職
sch.tec_regin(te1)

給學生辦理註冊,調用學校的stu_regin方法:入門

# 學生註冊
sch.stu_regin(st1)
sch.stu_regin(st2)
sch.stu_regin(st3)

老師授課:event

# 老師教課
sch.teachers[0].teach()

學生交學費:

# 學生交學費
for s in sch.students:
    s.pay_fee()

執行結果:

相關文章
相關標籤/搜索