一、接口简述

在我们所熟知的面向对象编程语言中,大多提供了接口(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!" % somebodyif __name__ == '__main__':z = Miss()hi = z.imissyouatlost('Zy')print(hi)

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

Python面向对象编程之Zope.interface安装使用( @implementer)implements相关推荐

  1. python面向对象编程之实例属性和类属性

    廖雪峰python教程 面向对象编程之实例属性和类属性 练习 为了统计学生人数,可以给Student类增加一个类属性,每创建一个实例,该属性自动增加: # -*- coding: utf-8 -*- ...

  2. python面向对象编程之访问限制

    廖雪峰python教程 面向对象编程之访问限制 https://www.liaoxuefeng.com/wiki/1016959663602400/1017496679217440 练习: 请把下面的 ...

  3. python面向对象编程之组合

    前面讲了面向类与对象的继承,知道了继承是一种什么"是"什么的关系. 然而类与类之间还有另一种关系,这就是组合 先来看两个例子: 先定义两个类,一个老师类,老师类有名字,年龄,出生的 ...

  4. python 用twisted 问题 zope.interface

    在python 27 安装了twisted 11. 结果在用的时候,import 包的时候,总是报错,zope.interface 问题. 后来找到解决方法: 下载 easy_install. htt ...

  5. python面向对象编程指南 脚本之家_Python面向对象编程之继承与多态详解

    本文实例讲述了Python面向对象编程之继承与多态.分享给大家供大家参考,具体如下: Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一 ...

  6. Python基础-面向对象编程之特性(property)

    Python基础-面向对象编程之特性property Python面向对象编程之特性(property) 一.统一访问原则 二.使用特性进行拦截操作 三.老式写法 Python面向对象编程之特性(pr ...

  7. python的scrapy框架的安装_Python3环境安装Scrapy爬虫框架过程及常见错误

    Windows •安装lxml 最好的安装方式是通过wheel文件来安装,http://www.lfd.uci.edu/~gohlke/pythonlibs/,从该网站找到lxml的相关文件.假如是P ...

  8. twisted 安装时,安装顺序为 zope.interface -twisted

    最近想学 twisted ,就去下载 twisted 的windows版本,并且 安装.运行 twisted 例子后,发现出现了问题: ImportError: Twisted requires zo ...

  9. python的接口实现zope.interface示例

    python支持多继承,但是不支持接口,zope.inteface是其三方的接口实现库,在twisted中有大量使用 from zope.interface import Interface from ...

最新文章

  1. 【数据处理】python数据评估常用指标:ks、fpr、tpr
  2. 利用Hadoop Streaming处理二进制格式文件
  3. python中repeat函数用法
  4. cookie的expires属性和max-age属性
  5. [Java基础]Collections概述和使用
  6. html5 table删除修改,一个可以增加和删除行的table并可编辑表格中内容
  7. 关于redis性能问题分析和优化
  8. 基础篇:6.Android数据库编程---SQLite
  9. 第二周作业购物车程序
  10. 使用PMSM控制的puma560机械臂简单轨迹跟踪
  11. 论文期刊科普-SCI SSCI CSSCI CSCD和北大核心期刊分别是什么?
  12. linux zip 删除源文件,linux zip命令参数及用法详解--linux压缩zip文件命令
  13. 什么是word文件只读模式?
  14. winxp+win7蓝屏代码
  15. 做软件测试有发展前景吗?
  16. 使用python来进行用户流失预测的实战
  17. 【瑞模网】3dmax渲染完就卡住不动,渲染崩溃是怎么回事?
  18. itext pdf 加页眉和页脚加页数(二)
  19. 京东商品主图定时替换,90%卖家这样做
  20. iOS开发中plist文件的创建与简单读取

热门文章

  1. 获得诺贝尔奖之后影响力会下降?绘制精英科学家的职业生涯路线图
  2. if函数python作用_if __name__== __main__ 的意思(作用)python代码复用
  3. 啊哈算法系列(C语言、python、Java )
  4. java spring事务管理系统_Java Spring-事务管理概述
  5. RTX5 | 时间延时
  6. 学生汽车网页设计作品静态HTML网页模板源码 大学生汽车网站制作 简单汽车网页设计成品
  7. jquery/js 点击空白区域隐藏某一个层/元素
  8. thinkphp 模板页面出现空白
  9. 斑马打印机怎么打印二维码_万能打印机厂家是怎么改良打印机的?
  10. Spring Cloud文档阅读笔记-初识Spring Cloud(对Spring Cloud初步了解)