• Python---继承与复写


    单继承语法: 一个子类继承一个父类
    class 类名(父类名):
        类内容体

    多继承语法: 一个子类继承多个父类------优先级:从左到右

    class 类名(父类名1,父类名2,父类名2....父类名n):
        类内容体

    复写:子类复写父类成员方法,在子类中重新定义同名的属性或方法

    子类中调用父类同名成员: 一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员,如果需要使用被复写的父类的成员,就需要特殊的调用方式:

    方式一:调用父类成员

    使用成员变量:父类名.成员变量

    使用成员方法:父类名.成员方法(self)

    方式二:使用super()调用父类成员

    使用成员变量:super().成员变量

    使用成员方法:super().成员方法()

    单继承例子

    1. # 单继承
    2. class Phone:
    3. IMEI = None
    4. producter = "HH"
    5. def call_by_4g(self):
    6. print("4g")
    7. class SonPhone(Phone):
    8. face_id = "001"
    9. def call_by_5g(self):
    10. print("5g")
    11. sonphone = SonPhone()
    12. print(sonphone.producter)
    13. sonphone.call_by_4g()
    14. sonphone.call_by_5g()

    多继承例子:

    1. # 多继承
    2. class Phone:
    3. IMEI = None
    4. producter = "HH"
    5. def call_by_4g(self):
    6. print("4g")
    7. class NFCReader:
    8. nfc_type = "第五代"
    9. producter = "hh"
    10. def read_card(self):
    11. print("NFC读卡")
    12. def write_card(self):
    13. print("NFC写卡")
    14. class RemoteControl:
    15. rc_type = "红外遥控"
    16. def control(self):
    17. print("红外遥控")
    18. class SonPhone(Phone, NFCReader, RemoteControl):
    19. pass # 语法补全不报错
    20. # face_id = "001"
    21. #
    22. # def call_by_5g(self):
    23. # print("5g")
    24. sonphone = SonPhone()
    25. print(sonphone.producter) # Phone中的 优先级:从左到右
    26. sonphone.call_by_4g()
    27. sonphone.read_card()
    28. sonphone.write_card()
    29. sonphone.control()

    复写例子:

    1. # 复写---复写父类成员
    2. class Phone:
    3. IMEI = None
    4. producter = "HH" # 复写成员变量
    5. def call_by_4g(self): # 复写成员方法
    6. print("4g")
    7. class SonPhone(Phone):
    8. producter = "MM"
    9. face_id = "001"
    10. def call_by_4g(self):
    11. print("复写")
    12. sonphone = SonPhone()
    13. print(sonphone.producter)
    14. sonphone.call_by_4g()

    复写父类成员:

    1. # 复写父类成员
    2. class Phone:
    3. IMEI = None
    4. producter = "HH"
    5. def call_by_4g(self):
    6. print("4g")
    7. class SonPhone(Phone):
    8. producter = "MM"
    9. face_id = "001"
    10. def call_by_4g(self):
    11. print("复写")
    12. print("5g")
    13. print("啦啦啦")
    14. # 方式一:调用父类成员
    15. # print(Phone.producter) # HH
    16. # Phone.call_by_4g(self) # 4g
    17. # 方式二: 使用super()
    18. print(super().producter) # HH
    19. super().call_by_4g() # 4g
    20. sonphone = SonPhone()
    21. print(sonphone.producter) # MM
    22. sonphone.call_by_4g()

  • 相关阅读:
    ubuntu安装Anaconda
    CUDA编程学习(3)
    LeetCode--230. 二叉搜索树中第K小的元素(C++描述)
    快速掌握 Base 64 | Java JS 密码系列
    总结了几个做用户体验设计的原则,分享给需要的朋友
    面试官:说说 HTTP 常见的请求头有哪些?
    【无人机】基于PID控制器和A星算法实现无人机路径规划附matlab代码
    新疆旅游8日游费用以及详细线路,新疆八天七晚行程分享,看完就知道了
    15-55V输入自动升降压 光伏MPPT自动跟踪充电方案 大功率300瓦
    Kubeadm搭建kubernetes(k8s)集群
  • 原文地址:https://blog.csdn.net/weixin_52053631/article/details/133614916