1)创建一个 Kid 类,包含姓名,性别,年龄属性和 play 方法
2) 创建一个 Stu 类,继承 Kid 类,同时包含成绩属性,获取成绩方法,努力学习方法,play方法,要求play 方法重写,成绩属性私有。
3) 由 Stu 类生成学生对象。
4)测试类中方法。
创建一个Kid类,并用init方法初始化,然后定义了一个play方法:
class Kid():
def __init__(self,name,sex,age):
self.name=name
self.sex=sex
self.age=age
def play(self):
print("玩游戏中...")
创建一个Stu类,初始化并继承Kid类,定义一个努力学习方法,重写Kid类的play方法,输出成绩的方法,并将成绩属性设为私有(将成绩属性设为私有,就必须在该类的内部的方法才能访问,关于私有属性的设置,详解请移步我之前的博客 Python面向对象):
import time
class Stu(Kid):
def __init__(self,name,sex,age,score):
self.__score=score
self.name=name
self.sex=sex
self.age=age
def study_hard(self):
print("努力学习中...")
time.sleep(3)
self.__score += 0.1
def play(self):
print("玩原神中...")
time.sleep(3)
self.__score -= 1
def 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 time
class Kid():
def __init__(self,name,sex,age):
self.name=name
self.sex=sex
self.age=age
def play(self):
print("玩游戏中...")
class Stu(Kid):
def __init__(self,name,sex,age,score):
self.__score=score
self.name=name
self.sex=sex
self.age=age
def study_hard(self):
print("努力学习中...")
time.sleep(3)
self.__score += 0.1
def play(self):
print("玩原神中...")
time.sleep(3)
self.__score -= 1
def 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类中的方法能访问私有属性):