zoukankan      html  css  js  c++  java
  • day15-接口类

    # 一、接口类的作用是规范它的子类,跟后面学习的接口没关系。
    from abc import abstractmethod,ABCMeta
    class Pay(metaclass=ABCMeta):  #metaclass是元类。
        @abstractmethod
        def pay(self):pass     #pass意思是没代码。
    #接口类:规范后面的子类,当子类没有pay方法时,抛出提示:
    # Can't instantiate abstract class Apple with abstract methods pay 无法使用抽象方法pay来实例化抽象类apple,意思就是没有pay方法。
    class Wechat(Pay):
        def pay(self,money):
            print('微信支付了%s元'%money)
    
    class Ali(Pay):
        def pay(self,money):
            print('支付宝支付了%s元'%money)
    
    class Apple(Pay):
        def pppppppppppppppppppp(self,money):
            print('苹果支付了%s元'%money)
    
    def P(a,b):    #统一接口,方便用户。
        a.pay(b)   #多态,同一类事物有多种形态。
    
    w = Wechat()
    a = Ali()
    ap = Apple()
    # w.pay(100)
    # a.pay(200)
    # ap.pay(300)
    P(w,100)
    P(a,200)
    P(ap,200)
    
    
    # 二、接口类的多继承:是面向对象的思想,符合接口类的接口隔离原则:
    # 使用多个专门的接口(走路、游泳、飞分为三个专门的类),而不是使用单一的总接口(一个类有走路、游泳、飞三个方法),即客户端只需要有用的接口,不需要多余的。
    # 老虎tiger 会走路、游泳
    # 老鹰eagle 会走路、飞
    # 天鹅swan  会走路、游泳、飞
    from abc import abstractmethod,ABCMeta
    class Walk(metaclass=ABCMeta):
        @abstractmethod
        def walk(self):pass
    
    class Swim(metaclass=ABCMeta):
        @abstractmethod
        def swim(self):pass
    
    class Fly(metaclass=ABCMeta):
        @abstractmethod
        def fly(self):pass
    
    class Tiger(Walk,Swim):
        def walk(self):pass
        def swim(self):pass
    
    class Eagle(Walk,Swim):
        def walk(self):pass
        def fly(self):pass
    
    class Swan(Walk,Swim):
        def walk(self):pass
        def swim(self): pass
        def fly(self):pass
  • 相关阅读:
    十.总结drf视图
    一.9.多云管理同步服务器
    一.vue 初识
    一.8.django权限管理/drf权限管理
    一.7.服务器之分页和搜索应用
    一.6.序列化应用之服务器同步功能
    一.5.序列化应用之服务器制造厂与型号app功能
    【前端背景UI】鼠标磁性动态蜘蛛网背景源码
    【vue】导入式,使用vue与element UI, 单人开发项目,告别脚手架
    【python后台admin】所有属性显示设置
  • 原文地址:https://www.cnblogs.com/python-daxiong/p/11127905.html
Copyright © 2011-2022 走看看