接口类

"""
接口类 是一种编程设计模式,在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)) #
print(discipline.cure(20)) #

  抽象类

"""
抽象类 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)) #
print(discipline.cure(20)) #

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

  1. python学习之老男孩python全栈第九期_day025知识点总结——接口类、抽象类、多态、封装

    一. 接口类 java:面向对象编程 设计模式 -- 接口类 接口类:python原生不支持 抽象类:python 原生支持的 from abc import abstractclassmethod, ...

  2. Python面向对象之接口类(抽象类)

    Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...

  3. Python学习日记(二十五) 接口类、抽象类、多态

    接口类 继承有两种用途:继承基类的方法,并且做出自己的改变或扩展(代码重用)和声明某个子类兼容于某基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子 ...

  4. Python——接口类、抽象类

    建立一个接口类.抽象类的规范 from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): # 元类 默认的元类 t ...

  5. day25:接口类和抽象类

    1,接口类和抽象类知识背景:一开始在程序界是没有这些概念的,后来就流行了一种语言叫做JAVA,JAVA是一种典型的纯面向对象的语言,JAVA写的程序都是非常适用于更庞大的项目,很多程序员就总结出了一些 ...

  6. day 25-1 接口类、抽象类、多态

    # 接口类:python 原生不支持# 抽象类:python 原生支持的 接口类 首先我们来看一个支付接口的简单例子 from abc import abstractmethod,ABCMeta #我 ...

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

    python 使用abc实现接口类/虚类 具体类 class BaseA: def run(self): print('base A running') class ChildA(BaseA): de ...

  8. [ python ] 接口类和抽象类

    接口类 继承有两种用途:1. 继承基类的方法,并且做出自己的改变或者扩展(代码重用)2. 申明某个子类兼容于某基类,定义一个接口类interface,接口类定义了一些接口名且未实现接口的功能,子类继承 ...

  9. Python 接口类或抽象类 反射

    # 抽象类或者接口类,制定规范,统一方法名 # # 抽象类或者接口类,制定规范,统一方法名 from abc import ABCMeta,abstractmethod class Payrole(m ...

随机推荐

  1. 学习JDK1.8集合源码之--ArrayList

    参考文档: https://cloud.tencent.com/developer/article/1145014 https://segmentfault.com/a/119000001857894 ...

  2. Swift 之 函数与闭包的应用实例

    http://www.cocoachina.com/swift/20160106/14862.html 今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序 ...

  3. BZOJ 4420二重镇题解

    链接 思路借鉴了这个博客: 我们可以想到状压dp 用一个十进制数来表示状态,即第i位表示位置i处的物品等级 用f[i][j][k]表示第i天,仓库的物品等级为j,状态为k时的最大收益 但是状态数貌似很 ...

  4. npm run dev 和 npm run serve

    1.ERR引发的思考 创建好的 vue 项目直接执行 vue run dev 报错?运行 vue run serve 就可以启动...如下 npm run dev npm ERR! missing s ...

  5. 2019-9-2-dotnet-命名管道名字长度限制

    title author date CreateTime categories dotnet 命名管道名字长度限制 lindexi 2019-09-02 11:54:50 +0800 2019-09- ...

  6. python 模块的执行环境

  7. 两种获取python版本的方法

    方法1:查看python版本 import sys print("当前python版本",sys.version) 方法2:cmd框中查看的两种方式

  8. spring调试

    spring-beans DefaultListableBeanFactory preInstantiateSingletons:650 RequestMappingHandlerMapping Ab ...

  9. linux下清除tomcat缓存

    进入tomcat/bin目录下,执行命令:./shutdown.sh 然后执行命令:ps -aux ,查看tomcat是否真的关闭了 如果没有关闭则执行命令:kill -9 #pid来彻底关闭tomc ...

  10. 条件变量用例--解锁与signal的顺序问题

    我们知道,当调用signal/broadcast唤醒等待条件变量的其他线程时,既可以在加锁的情况下调用signal/broadcast,也可以在解锁的情况下调用. 那么,到底哪种情况更好呢?man手册 ...