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
  • 相关阅读:
    常用的电脑快捷键【转】
    win10关闭自动更新【转】
    JavaScript中双叹号(!!)作用【转】
    javascript中获取dom元素的高度和宽度【转】
    javascript的setTimeout()用法总结,js的setTimeout()方法【转】
    JavaScript sort() 方法使用【转】
    JavaScript slice() 方法使用【转】
    Ball CodeForces
    C. Trailing Loves (or L'oeufs?)
    C
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8326121.html
Copyright © 2011-2022 走看看