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

原文地址:https://www.cnblogs.com/zxc-Weblog/p/8326121.html

时间: 2024-07-28 20:02:31

python编程设计模式之接口类和抽象类的相关文章

初识面向对象-接口类、抽象类、封装

接口类 # java : 面向对象编程# 设计模式 —— 接口# 接口类 : python原生不支持# 抽象类 : python原生支持的from abc import abstractmethod,ABCMetaclass Payment(metaclass=ABCMeta): # 元类 默认的元类 type @abstractmethod def pay(self,money):pass # 没有实现这个方法# 规范 :接口类或者抽象类都可以# 接口类 支持多继承,接口类中的所有的方法都必须

python 接口类、抽象类、多态

参考https://www.cnblogs.com/Fantac/p/11481114.html 接口类和抽象类总结 在python中没有接口类,但有抽象类;abc模块中的metaclass = ABCMeta,@abstractmethod它的本质是做代码的规范用的,希望子类中能实现父类名字完全一样的方法 接口类和抽象类: 从java的角度上看是有区别的,java本来就支持单继承所以就有了抽象类;java没有多继承,所以为了接口隔离原则,设计了接口这个概念,支持多继承了 而python它既支持

023_接口类,抽象类,多态,鸭子类型,封装

1,接口类 1 class Wechat(): 2 def pay(self,money): 3 print('已经用微信支付了%s元'%money) 4 class Alipay(): 5 def pay(self,money): 6 print('已经用支付宝支付了%s元' % money) 7 wechat = Wechat() 8 ali = Alipay() 9 # wechat.pay(100) 10 # ali.pay(200) 11 #将上面两句用下面的替换, 12 def pa

python 使用abc实现接口类/虚类(2.2)

python 使用abc实现接口类/虚类 具体类 class BaseA: def run(self): print('base A running') class ChildA(BaseA): def run(self): print('child a') # 具体类可以直接继承也可以实现多态 a = BaseA() a.run() a = ChildA() a.run() 虚类 class BaseB(): @abc.abstractmethod def run(self): return

python 2018.7.25 接口类,抽象类

python 没有接口这个概念 接口类,抽象类: 制定一个规范. from abc import ABCMeta,abstractmethodclass Payment(metaclass=ABCMeta): # 抽象类(接口类): @abstractmethod def pay(self): pass # 制定了一个规范 class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): prin

Python中的接口类与抽象类

接口类 面向对象中的继承有两种用途:1)可以通过继承做到代码重用,并完成扩展:2)接口继承.所谓的接口继承就是定义一个接口类 Interface,接口类中定义了一些接口(就是函数,但这些函数都没有具体的实现),子类继承接口类,并且实现接口中的功能~ 接口继承可以使得外部调用者无需关心具体的实现细节,可用相同的方式处理继承了特定接口的所有对象,这里的前提是接口类需要做出一个很好的抽象~ class Operate_database(): # 接口类 def query(self, sql): ra

day_21(接口类,抽象类,封装)

class Payment: # 抽象类,或者接口类:制定一个规范. def pay(self):pass class QQ(Payment): def pay(self,money): print('您用qq支付了%s元' % money) class Ali(Payment): def pay(self,money): print('您用支付宝支付了%s元' % money) class Wechat(Payment): def pay(self,money): print('您用微信支付了

面向对象:接口类、抽象类

# python 没有接口这个概念# 接口类,抽象类: 制定一个规范. 接口类,抽象类:python中就是一样的 1,归一化设计. 2,制定一个规范,凡是继承我类的类,必须有我规定的方法. # 第一版 class Alipay: def __init__(self,money): self.money = money def pay(self): print('使用支付宝支付了%s' %self.money) class Jdpay: def __init__(self, money): sel

PHP中的特殊类,接口类和抽象类(都不能直接实例化)

接口类不用实例化,需要一一实现接口定义的所有方法.关键字interface implements 接口interface 是一个规定,给人继承用的东西,有点像抽象类在里面定义的方法,却不去实例化,而需要别的类去implements 它,而且必须一一实现接口定义的所有方法, 实际上接口类说白了,就是一个类的模板,一个类的规定, 举个例子interface Shop { public function buy($gid); public function sell($gid); public fun