Python面向对象之接口类(抽象类):就是制定一个规范。

比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因)。
他的定义是需要abc模块,要变的就是他的方法,比如下面的pay方法,
定义好一个抽象类(接口类)Payment,他用装饰器@abstractmethod将pay方法装饰
这样,其他类如果都继承了Payment方法,其他类中就都需要有一个pay方法,如果没有就会报错。 就好比,起初我没有微信支付类,但是如果后续项目需要加微信支付此功能,支付的方法我可以起各种名字。
但是为了统一支付接口,我们继承抽象类Payment后,我们的支付接口名就必须用pay. 这就是接口类(抽象类的用途) from abc import ABCMeta, abstractmethod class Payment(metaclass=ABCMeta): # 抽象类(接口类)
@abstractmethod
def pay(self): # 制定一个规范
pass class Alipay(Payment):
def __init__(self, money):
self.money = money def pay(self):
print('使用支付宝花了%s钱' % (self.money,)) class Jdpay(Payment):
def __init__(self, money):
self.money = money def pay(self):
print('使用京东支付了%s钱' % (self.money,)) class Wechatpay(Payment):
def __init__(self, money):
self.money = money def pay(self):
print('使用微信支付了%s钱' % (self.money,)) w1 = Wechatpay(200)
a1 = Alipay(150)
j1 = Jdpay(100)
w1.pay()
a1.pay()
j1.pay()

最新文章

  1. SpringMVC(四) RequestMapping请求方式
  2. 磁盘配额quota应用
  3. C#SortedList排序列表怎么样逆序输出
  4. APICloud支持Atom编辑器,并建立开发工具核心库
  5. Corelocation及地图控件学习笔记
  6. NK 1137: 石子合并问题
  7. OpenStack_Swift源代码分析——创建Ring及加入�设备源代码算法具体分析
  8. C# 与 C++ 交互
  9. 常用颜色大全---RGB值及中英文名称
  10. keil C语言与汇编语言混合编程
  11. SQL入门学习6-集合运算
  12. NET实现仓库看板的一些感想
  13. windows python flask上传文件出现IOError: [Errno 13] Permission denied: 'E:\\git\\test\\static\\uploads'的解决方法
  14. React Native填坑之旅 -- 使用react-navigation代替Navigator
  15. 【TensorFlow 官网 可以直接访问】让中国开发者更容易地使用TensorFlow打造人工智能应用
  16. IIS版本号可以被识别 解决方案
  17. linux 内存-文档学习
  18. python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化
  19. Discuz 论坛 (LAMP环境)
  20. [ 低危 ] mt网CRLF

热门文章

  1. 思科安全:加密流量威胁检测、加密流量威胁和恶意软件检测、识别无线干扰或威胁、Talos 情报源可加强对已知和新型威胁的防御、分布式安全异常检测
  2. codeforces 706A A. Beru-taxi(水题)
  3. hdu-1542 Atlantis(离散化+线段树+扫描线算法)
  4. NO2:设置RedHat Linux下的samba开机启动
  5. ZJOI2012题解
  6. 解决mongodb查询慢的问题
  7. python list列表sort、sorted、reverse排序
  8. FASTX-Toolkit组件用法
  9. SPFA算法——最短路径
  10. mysql给id生成uuid