持续学习python+django中。。。

一、接口简述

在我们所熟知的面向对象编程语言中,大多提供了接口(interface)的概念。接口在编程语言中指的是一个抽象类型,是抽象方法的集合;它的特点如下:

1、类通过继承接口的方式,来继承接口的抽象方法;

2、接口并不是类(虽然编写类和方法的方式很相似);

3、类描述对象的属性和方法(实现接口的类,必须实现接口内所描述的所有方法,否则必须声明为抽象类);

4、接口包含类要实现的方法(接口无法被实例化,但可以被实现);

总结:接口只定义规范,不负责具体实现(具体实现由具体的实现者完成)!

二、python中的interface

python中也有interface的概念,但是python其本身不提供interface的实现,需要通过第三方扩展库来使用类似interface的功能,一般都是Zope.interface。

PyPI地址:Zope.inter

或者通过pip命令行进行安装,示例如下:

如上图所示:zope.interface下载成功后提示我pip版本较低,然后升级pip到最新版本,升级成功后zope.interface就安装成功了,接下来使用即可。

官方文档:Zope.interface

三、zope.interface_demo.py

 # coding=utf-8
from zope.interface import Interface
from zope.interface.declarations import implementer # 定义接口
class MyMiss(Interface):
def imissyouatlost(self,miss):
"""Say i miss you at lost to miss""" @implementer(MyMiss) # 继承接口
class Miss:
def imissyouatlost(self,somebody):
"""Say i miss you at lost to somebody"""
return "i miss you at lost, %s!" % somebody if __name__ == '__main__':
z = Miss()
hi = z.imissyouatlost('Zy')
print(hi)

PS:该例子适用于python3,更多关于zope.interface的内容,请参考zope.interface源码

最新文章

  1. 解决某些Android Permission denied
  2. POJ2010 Moo University - Financial Aid(二分法)
  3. PS------“窗口” -> "扩展功能"使用方法
  4. 关闭Eclipse的控制台console自动跳出
  5. 常用IT类英文词汇 - 1
  6. Spring 复习笔记01
  7. JAVA EE 第一阶段考试
  8. jquery 清空动态append添加元素,remove方法
  9. OC-nonatomic和atomic相关
  10. 微信前端面试题----js实现LazyMan
  11. 看过WWDC2017的闲谈
  12. 201521123042 《Java程序设计》第3周学习总结
  13. Grafana+Prometheus系统监控之webhook
  14. ScheduledThreadPoolExecutor详解
  15. 【自然语言处理篇】--Chatterbot聊天机器人
  16. EF 底层封装方法(供参考)
  17. JavaScript代码优化
  18. [C++]PAT乙级1012.数字分类 (20/20)
  19. SpringBoot 调用 mysql存储过程的实战
  20. [HEOI2012]采花 BZOJ2743

热门文章

  1. Windows下git设置代理服务器
  2. 30.Odoo产品分析 (四) – 工具板块(2) – 搜索和仪表盘(2)
  3. 常用的JVM调优参数总结汇总【随时查阅学习】
  4. 自动化测试 接口自动化及UI自动化测试平台设计演示
  5. Android为TV端助力 很详细的序列化过程Parcelable
  6. git 入门教程之本地仓库
  7. 基于OpenSSL的HTTPS通信C++实现
  8. 开发新手最容易犯的50个 Ruby on Rails 错误(1)
  9. Multiple Server Query Execution报The result set could not be merged..
  10. C语音输出前100个回文素数,每行10个,适当对齐