python编程设计模式之接口类和抽象类

Posted 蔠缬草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于python编程设计模式之接口类和抽象类的主要内容,如果未能解决你的问题,请参考以下文章

day21接口类和抽象类,隔离原则,开放封闭原则,多态

接口类 和 抽象类

tornado项目之基于领域驱动模型架构设计的京东用户管理后台

tornado系列项目之基于领域驱动模型架构设计的京东用户管理后台

Day21

python:面向对象编程之Zope.interface安装使用