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 前置程序窗口,还原最小化的窗口
    GreenDao官方文档翻译(上)
    Android 使用Instrumentation进行界面的单元测试
    Android:View中的performClick()触发条件
    Java 单元测试(Junit)
    再看薄荷
    单例模式-Singleton
    Java 如何防止线程意外中止
    Java Error和Exception区别
    linux的进程1:rootfs与linuxrc
  • 原文地址:https://www.cnblogs.com/gaona666/p/12598268.html
Copyright © 2011-2022 走看看