文章目录
- 题目要求
- 步骤
题目要求
1)创建一个 Kid 类,包含姓名,性别,年龄属性和 play 方法
2) 创建一个 Stu 类,继承 Kid 类,同时包含成绩属性,获取成绩方法,努力学习方法,play方法,要求play 方法重写,成绩属性私有。
3) 由 Stu 类生成学生对象。
4)测试类中方法。
步骤
创建一个Kid类,并用init方法初始化,然后定义了一个play方法:
class Kid():def __init__(self,name,sex,age):self.name=nameself.sex=sexself.age=agedef play(self):print("玩游戏中...")
创建一个Stu类,初始化并继承Kid类,定义一个努力学习方法,重写Kid类的play方法,输出成绩的方法,并将成绩属性设为私有(将成绩属性设为私有,就必须在该类的内部的方法才能访问,关于私有属性的设置,详解请移步我之前的博客 Python面向对象):
import time
class Stu(Kid):def __init__(self,name,sex,age,score):self.__score=scoreself.name=nameself.sex=sexself.age=agedef study_hard(self):print("努力学习中...")time.sleep(3)self.__score += 0.1def play(self):print("玩原神中...")time.sleep(3)self.__score -= 1def put_score(self):print(f"{self.name}的成绩是{self.__score}")
由Stu类实例化一个学生对象:
stu1 = Stu(name="EMT",sex=True,age=24,score=95.9)
由该对象调用类中的方法:
stu1.put_score()
stu1.study_hard()
stu1.study_hard()
stu1.play()
stu1.put_score()
将上述代码组成一段完整代码:
import timeclass Kid():def __init__(self,name,sex,age):self.name=nameself.sex=sexself.age=agedef play(self):print("玩游戏中...")class Stu(Kid):def __init__(self,name,sex,age,score):self.__score=scoreself.name=nameself.sex=sexself.age=agedef study_hard(self):print("努力学习中...")time.sleep(3)self.__score += 0.1def play(self):print("玩原神中...")time.sleep(3)self.__score -= 1def put_score(self):print(f"{self.name}的成绩是{self.__score}")stu1 = Stu(name="EMT",sex=True,age=24,score=95.9)stu1.put_score()
stu1.study_hard()
stu1.study_hard()
stu1.play()
stu1.put_score()
如下图,stu1成功调用了三个方法:
由于其中的score属性是私有的,如果使用print(stu1.__score)函数访问该属性,则不能访问(只有Stu类中的方法能访问私有属性):