习题

这篇博客探讨了面向对象编程中一个学校成员类的设计,该类记录成员姓名并统计学校总人数。老师类和学生类分别继承自学校成员类,前者增加工资属性,后者增加成绩属性。当对象创建时,总人数自动增加,对象销毁时减少。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8、下面的例子实现了学校成员类,这个类登记成员的姓名,并且统计学校的总人数。
老师类继承学校成员类,创建对象的时候总人数加一,老师类登记老师的工资。
学生类继承学校成员类,总人数也会加一,学生类登记学生的成绩。
对象消亡的时候,总人数会减一。

class SchoolMember:
    # 总人数,这个是类的变量
    sum_member = 0

    def __init__(self, name):
        self.name = name
        #给name赋值
        SchoolMember.sum_member += 1
        #计算学校的现有人数
        #请输入新成员的名字
        print("请输入成员的名字:%s" % self.name)
        print("现在有成员%d人" % SchoolMember.sum_member)

    # 添加新同学
    def say_hello(self):
        #请输入新成员的名字
        print("我叫:%s" % self.name)

    def __del__(self):
        SchoolMember.sum_member -= 1
        #计算消亡后学校的人数
        print("%s离开了,学校还有%d人" % (self.name, SchoolMember.sum_member))


# 老师类继承学校成员类
class Teacher(SchoolMember):
    def __init__(self, name, salary):
        #老师的属性名字和工资
        SchoolMember.__init__(self, name)
        self.salary = salary
    #添加老师
    def say_hello(self):
        SchoolMember.say_hello(self)
        #请说出老师的工资
        print("我的工资是:%d" % self.salary)

    def __del__(self):
        #继承父类的消亡人数的计算
        SchoolMember.__del__(self)


# 学生类
class Student(SchoolMember):
    def __init__(self, name, mark):
        #学生的属性名字和成绩
        SchoolMember.__init__(self, name)
        #学生成绩的赋值
        self.mark = mark

    def say_hello(self):
        #请说出学生的成绩
        SchoolMember.say_hello(self)
        print("成绩:%d" % self.mark)

    def __del__(self):
        #继承父类的消亡人数的计算
        SchoolMember.__del__(self)


t = Teacher("张三", 4500)
t.say_hello()
s = Student("李四", 95)
s.say_hello()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值