zoukankan      html  css  js  c++  java
  • 学习总结(二十五)

    1.组合类

                 指的是 一个类把另一个类的对象作为自己的属性 就称之为组合

                 当你定义一个类 并且这个类拥有某种类型的属性时 就称之为组

    class PC:
        def open_app(self,app_name):
            print("open %s" % app_name)
    
    class OldBoyStudent:
        def __init__(self,PC,notebook):
            self.PC = PC
            self.notebook = notebook
        pass
    
    pc = PC()
    notebook = PC()
    
    
    stu = OldBoyStudent(pc,notebook)
    

      

    2.新式类与经典类

         class A:在py2中 A就是一个经典类,经典类不是object的子类 仅在py2中出现

         class A(object):object的子类 py3中都是新式类 ,先深度 直到有一个公共父类时,查找其他路线(基于C3算法)

    3.接口

                 接口是一套协议规范,具体表现:一堆只有方法声明而没有实现体的方法,而接口中全都是抽象方法,接口的出现是为了提高扩展性,抽象类是为类限制子类必须按照接口要求的来实现

    4.鸭子类型

                   说如果一个对象叫声像鸭子,走路像鸭子,长得像鸭子,那它就是鸭子,是python 推荐的方式,python不喜欢强行限制你

      实例

    class PC():
    
        def conntent_device(self, usb_device):
            usb_device.open()
            usb_device.work()
            usb_device.close()
    
    class Mouse:
        # 实现接口规定的所有功能
        def open(self):
            print("mouse opened")
    
        def work(self):
            print("mouse working...")
    
        def close(self):
            print("mouse closed")
    
    mouse = Mouse()
    pc = PC()
    
    pc.conntent_device(mouse)
    
    
    
    
    class KeyBoard:
        def open(self):
            print("KeyBoard opened")
    
        def work(self):
            print("KeyBoard working...")
    
        def close(self):
            print("KeyBoard closed")
    
    key1 = KeyBoard()
    
    # 如果key1的特征和行为都像USB设备 那就把它当做USB设备来使用
    # 对于使用者而言可以不用关心这个对象是什么类,是如如何是实现,
    pc.conntent_device(key1)
    

      

  • 相关阅读:
    LINUX 常用命令
    连接远程Linux的几类工具
    spring-boot导出excel
    基于Vue2全家桶的移动端AppDEMO实现
    jdk+tomcat+mysql+war打包整合成exe文件,Windows下一键安装
    使用 Gogs 搭建自己的 Git 服务器
    db2 命令
    在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
    Linux shell break、continue、exit、return的用法 及exit、return的区别
    redis 导入导出redis-load,redis-dump详解
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/10883311.html
Copyright © 2011-2022 走看看