一. 接口类

接口类不能被实例化

在python里没有接口类这种数据类型,没有接口类专门的语法
但是 可以通过继承abc模块实现接口的功能

from abc import ABCMeta,abstractmethod
class Payment(metaclass=ABCMeta):  # 接口类
    @abstractmethod
    def pay(self,money):
        pass
class Wechatpay(Payment):         # 根据接口类的规范编程
    def pay(self,money):
        print('微信支付了%s元'%money)
p = Wechatpay()
p.pay(6)

二. 接口隔离原则

from abc import ABCMeta,abstractmethod
class FlyAnimal(metaclass=ABCMeta):
    @abstractmethod
    def fly(self):
        print(11111)

class SwimAnimal(metaclass=ABCMeta):
    @abstractmethod
    def swim(self): pass

class WalkAnimal(metaclass=ABCMeta):
    @abstractmethod
    def walk(self): pass

class Swan(SwimAnimal,WalkAnimal,FlyAnimal):
    #
    def fly(self):pass
    # 游泳
    def swim(self):pass
    #
    def walk(self):pass

class Qq(SwimAnimal,WalkAnimal):
    def swim(self):pass
    #
    def walk(self):pass

class Bird(FlyAnimal,WalkAnimal):
    #
    def fly(self):pass
    #
    def walk(self):pass

Swan()
接口隔离原则

相关文章: