python 继承

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

原文地址:https://www.cnblogs.com/gaona666/p/12598268.html