zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    python数据类型
    集合(set)内置方法
    python第三天
    剑指offer-什么是1G/2G/3G/4G/5G
    经典交换实验-二层交换机实现pc隔离&vlan通信
    linux运维神器-htop&mtr
    三分钟速学linux-进程管理命令
    三分钟速学文件权限管理
    三分钟速学网卡管理配置-nmcli命令
    三分钟速学linux-centos/redhat常见包管理器
  • 原文地址:https://www.cnblogs.com/gaona666/p/12598268.html
Copyright © 2011-2022 走看看