Python中的面向对象编程(继承)

img

本人Python小白 哪位大佬能提供一个代码或者思路

总人数设置个静态变量,学生和老师实例放到对应数组中

img


class school:
    total=0
    def __init__(self,name,age):
        self.name=name
        self.age=age
        school.total+=1

class teacher(school):
    def __init__(self, name, age,no,salary):
        school.__init__(self,name,age)
        self.no=no
        self.salary=salary

class student(school):
    def __init__(self, name, age,no,score):
        school.__init__(self,name,age)
        self.no=no
        self.score=score

def showinfo():
    print('当前学校有%s位成员,其中教师%s位,学生%s位'%(school.total,len(listt),len(lists)))

listt=[]
lists=[]

name=input('新增教师')
t=teacher(name,'','','')
listt.append(t)
showinfo()

name=input('新增教师')
t=teacher(name,'','','')
listt.append(t)
showinfo()

name=input('新增学生')
score=int(input('成绩'))
s=student(name,'','',score)
lists.append(s)
showinfo()

name=input('删除教师')
t=list(filter(lambda i:i.name==name,listt))
listt.remove(t[0])
school.total-=1
showinfo()

name=input('新增学生')
score=int(input('成绩'))
s=student(name,'','',score)
lists.append(s)
showinfo()

name=input('新增学生')
score=int(input('成绩'))
s=student(name,'','',score)
lists.append(s)
showinfo()

sum=0
for s in lists:
    sum+=s.score

print('所有学生的平均成绩为%.2f'%(sum/len(lists)))

有帮助或启发麻烦点下【采纳该答案】