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)) #
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编程设计模式之接口类和抽象类的更多相关文章
- python学习之老男孩python全栈第九期_day025知识点总结——接口类、抽象类、多态、封装
一. 接口类 java:面向对象编程 设计模式 -- 接口类 接口类:python原生不支持 抽象类:python 原生支持的 from abc import abstractclassmethod, ...
- Python面向对象之接口类(抽象类)
Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...
- Python学习日记(二十五) 接口类、抽象类、多态
接口类 继承有两种用途:继承基类的方法,并且做出自己的改变或扩展(代码重用)和声明某个子类兼容于某基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子 ...
- Python——接口类、抽象类
建立一个接口类.抽象类的规范 from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): # 元类 默认的元类 t ...
- day25:接口类和抽象类
1,接口类和抽象类知识背景:一开始在程序界是没有这些概念的,后来就流行了一种语言叫做JAVA,JAVA是一种典型的纯面向对象的语言,JAVA写的程序都是非常适用于更庞大的项目,很多程序员就总结出了一些 ...
- day 25-1 接口类、抽象类、多态
# 接口类:python 原生不支持# 抽象类:python 原生支持的 接口类 首先我们来看一个支付接口的简单例子 from abc import abstractmethod,ABCMeta #我 ...
- python 使用abc实现接口类/虚类(2.2)
python 使用abc实现接口类/虚类 具体类 class BaseA: def run(self): print('base A running') class ChildA(BaseA): de ...
- [ python ] 接口类和抽象类
接口类 继承有两种用途:1. 继承基类的方法,并且做出自己的改变或者扩展(代码重用)2. 申明某个子类兼容于某基类,定义一个接口类interface,接口类定义了一些接口名且未实现接口的功能,子类继承 ...
- Python 接口类或抽象类 反射
# 抽象类或者接口类,制定规范,统一方法名 # # 抽象类或者接口类,制定规范,统一方法名 from abc import ABCMeta,abstractmethod class Payrole(m ...
随机推荐
- golang之常量
1. 常量可以是全局常量,也可以是函数内部的局部常量.常量的值不可修改,常量表达式的值在编译期计算,而不是在运行期.存储在常量中的数据类型只可以是布尔型.数字型(整数型.浮点型和复数)和字符串型.当 ...
- socket in android
Server - JAVA package com.jim.ndkdemo; import android.net.LocalServerSocket; import android.net.Lo ...
- 转载 初探Promise
初探Promise https://segmentfault.com/a/1190000007032448 javascript es6 promise 33.5k 次阅读 · 读完需要 65 分 ...
- jquery 日期和时间的逻辑,比较大小
HTML:<ul> <li> <span>到达</span> <img class="date-s" src="/p ...
- 【JZOJ3887】【长郡NOIP2014模拟10.22】字符串查询
haf 给定n个字符串和q个询问 每次询问在这n个字符串中,有多少个字符串同时满足 1. 字符串a是它的前缀 2. 字符串b是它的后缀 100%数据满足n,q≤50000,字符串长度丌超过100,任意 ...
- Python中的进程池与线程池
引入进程池与线程池 使用ProcessPoolExecutor进程池,使用ThreadPoolExecutor 使用shutdown 使用submit同步调用 使用submit异步调用 异步+回调函数 ...
- 启动Jmeter录制代理进行录制,报 jmeter.protocol.http.proxy.ProxyControl
使用jmeter代理录制Http请求时,启动HTTP(S) Test Script Recorder报jmeter.protocol.http.proxy.ProxyControl, 日志为: 201 ...
- Python之路,Day1 - Python基础1 --转自金角大王
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- 瑞星推国内唯一Linux系统杀毒软件 国产操作系统还需国产安全软件保护
近来在IT领域最爆炸的新闻莫过于5月20日中央国家机关政府採购中心下发通知.要求中央机关採购所有计算机类产品不同意安装Windows 8.而改用国产Linux操作系统. 此消息一出,立马引起各界关注. ...
- iOS iOS8注册通知
http://blog.csdn.net/apple_app/article/details/39228221 极光推送 action设置 http://docs.jpush.cn/display/d ...