学习总结(二十五)

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)

  

猜你喜欢

转载自www.cnblogs.com/xzcvblogs/p/10883311.html