子类增加属性的三种方式:
每一种第一行都必须是def __init__(self,xx,yy,zz)
第二行有三种写法
1,所有属性重新赋值参数
2, SUPER()__INIT__(xx,yy) ,后面几行继续赋值添加的属性
3,父类名. __INIT__(self.xx,yy), 后面几行继续赋值添加的属性
父类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print(f"{self.name}正在吃早餐")
def run(self):
print(f"{self.age}的{self.name}正在跑步")
子类-第一种写法:
class Stu(Person):
# 第一种写法
def __init__(self, name, age, english, chinese):
self.name = name
self.age = age
self.english = english
self.chinese = chinese
def eat(self):
print(f"{self.name}---很少吃早饭")
def study(self):
print(f"{self.name}的--英语成绩{self.english},--语文成绩{self.chinese}")
zhou = Stu("周明", 12, 44, 55)
zhou.eat()
zhou.study()
子类-第二种写法
class Teacher(Person):
# 第二种写法
def __init__(self, name, age, english, chinese):
super().__init__(name, age)
self.english = english
self.chinese = chinese
def eat(self):
print(f"{self.name}<<早饭吃的很饱")
def study(self):
print(f"{self.name}的<<英语成绩{self.english},<<语文成绩{self.chinese}")
子类-第三种写法
class Driver(Person):
# 第三种写法
def __init__(self, name, age, english, chinese):
Person.__init__(self, name, age)
self.english = english
self.chinese = chinese
def eat(self):
print(f"{self.name}**吃早饭")
def study(self):
print(f"{self.name}的英语**成绩{self.english},语文**成绩{self.chinese}")
fen = Driver("冯程程", 21, 88, 95)
fen.eat()
fen.study()