• 学习总结(二十五)


    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)
    

      

  • 相关阅读:
    [转]三维成像原理
    loader如果你提前设width或height,loadComplete后显示不出来
    Flash调用Alchemy编译的代码时出现Error #1506的解决
    通过 IP 区分不同国家的用户
    Linux的进程组和会话
    Linux下安装 JDK(转备忘)
    程序中,调用Bison和Flex结合的小例子(语法分析中处理数据)
    从自己的程序中使用lex的一个小例子
    yum 删除软件要注意一点
    Linux下top命令
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/10883311.html
Copyright © 2020-2023  润新知