1、当有几个类有相同的代码,代码冗余,可读性不强,这时可以用继承。将相同代码写入Person中,各类继承父类。
class Person: def __init__(self,name,age): self.name = name self.age = age
class Student(Person): pass
class Employee(Person): pass class Doctor(Person): pass
2、如果子类中没有__init__,则直接找父类的__init__;如果需要自己定义__init__,则要调用父类的__init__,
使用super().__init__(name,age) 或者 super(类名,self).__init__(name,age)
class Person: def __init__(self,name): self.name = name self.age = 23 class Student(Person): def __init__(self,name,age,clazz): super().__init__(name,age) self.clazz = clazz
3、如果子类有父类同名的方法,默认搜索原则:先从子类自身中找,如果没有再找父类。
子类也可以调用父类的方法: super().方法名()
4、计算薪资
class Person: def __init__(self,number,name,salary): self.name = name self.number = number self.salary = salary def __str__(self): msg = "姓名:{},工号:{},工资:{}".format(self.name,self.number,self.salary) return msg def count_salary(self): return(self.salary) class Workers(Person): def __init__(self,number,name,salary,hours,pay): super().__init__(number,name,salary) self.hours = hours self.pay = pay def count_salary(self): money = self.hours*self.pay self.salary += money return (self.salary) w = Workers("0001","**",2000,160,10) s = w.count_salary() print(s) print(w)
3600
姓名:**,工号:0001,工资:3600