zoukankan      html  css  js  c++  java
  • python编程设计模式之接口类和抽象类

      接口类

    """
        接口类  是一种编程设计模式,在python原本没有接口类 借用Java思想创建的一种规范设计模式
                支持多继承,进行多方面规范
    """

      例子:

    from abc import abstractmethod, ABCMeta
    
    
    class Clergy(metaclass=ABCMeta):  # 规范子类都要有cure方法
        @abstractmethod   # 装饰要规范的方法
        def cure(self, HP):   # 规范方法必须要pass,不能实现
            pass
    
    
    class Holy(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Discipline(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Shadow(Clergy):
        def zhiliao(self, HP):
            HP += 100
            return HP
    
    
    # 创建牧师的三种分支
    holy = Holy()
    discipline = Discipline()
    # shadow = Shadow()   # Shadow类没有规定方法cure,不能实例化,实例化就会报错提醒
    # 都有治疗的技能
    print(holy.cure(10))  # 110
    print(discipline.cure(20))   # 120

      抽象类

    """
        抽象类  python支持抽象类,一般规范单继承
    """

      例子

    import abc
    
    class Clergy(metaclass=abc.ABCMeta):  # 规范子类都要有cure方法
        @abc.abstractmethod
        def cure(self, HP):  # 规范方法可以有一定代码功能
            HP += 100
            return HP
    
    
    class Holy(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Discipline(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Shadow(Clergy):
        def zhiliao(self, HP):
            HP += 100
            return HP
    
    
    # 创建牧师的三种分支
    holy = Holy()
    discipline = Discipline()
    # shadow = Shadow()   # Shadow类没有规定方法cure,不能实例化,实例化就会报错提醒
    # 都有治疗的技能
    print(holy.cure(10))  # 110
    print(discipline.cure(20))  # 120
  • 相关阅读:
    题目:心灵的抚慰
    间谍网络
    tarjan算法模版
    rect
    学校食堂
    题目:自然的雪糕
    Winform里众多上下文菜单的控制要怎么做?
    ubuntu更新列表
    瞧,Silverlight是如何被部署到客户机的
    盖茨十条成功箴言 值得一生铭记
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8326121.html
Copyright © 2011-2022 走看看