python:面向对象编程之Zope.interface安装使用
持续学习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源码!
python:面向对象编程之Zope.interface安装使用的更多相关文章
- python面向对象编程之组合
前面讲了面向类与对象的继承,知道了继承是一种什么"是"什么的关系. 然而类与类之间还有另一种关系,这就是组合 先来看两个例子: 先定义两个类,一个老师类,老师类有名字,年龄,出生的 ...
- Python 面向对象编程之进阶使用
我们在https://www.cnblogs.com/yinsedeyinse/p/9976280.html中学习了面向对象的编程方法.现在学习他的进阶用法. 1. 静态方法 2. 类方法 3. 属性 ...
- Python 面向对象编程之封装的艺术
1. 面向对象编程 OOP ( Object Oriented Programming) 即面向对象编程. 面向对象编程是一种编码思想,或是一种代码组织方式.如同编辑文章时,可以选择分段.分节的方式 ...
- 安装 Twisted 解决ImportError: No module named zope.interface错误
转自:http://blog.csdn.net/mickey_miki/article/details/7911323 步骤1:下载Twisted http://twistedmatrix.com/t ...
- twisted 安装时,安装顺序为 zope.interface ->twisted
最近想学 twisted ,就去下载 twisted 的windows版本,并且 安装.运行 twisted 例子后,发现出现了问题: ImportError: Twisted requires zo ...
- python基础-面向对象编程之继承
面向对象编程之继承 继承的定义:是一种新建类的方式,新建的类称之为子类或派生类,被继承的父类称之为基类或超类 继承的作用:子类会""遗传"父类的属性,从而解决代码重用问题 ...
- python基础-面向对象编程之封装、访问限制机制和property
面向对象编程之封装 封装 定义:将属性和方法一股脑的封装到对象中,使对象可通过"对象."的方式获取或存储数据. 作用:让对象有了"."的机制,存取数据更加方便 ...
- python基础-面向对象编程之反射
面向对象编程之反射 反射 定义:通过字符串对对象的属性和方法进行操作. 反射有4个方法,都是python内置的,分别是: hasattr(obj,name:str) 通过"字符串" ...
- python基础-面向对象编程之多态
面向对象编程之多态以及继承.抽象类和鸭子类型三种表现形式 多态 定义:同一种类型的事物,不同的形态 作用: 多态也称之为"多态性".用于在不知道对象具体类型的情况下,统一对象调用方 ...
随机推荐
- 在php中使用对称加密DES3,开发银行卡绑定,实名验证……
对称加密:对称加密是一种数据加密算法,对一组数据的加密和解密都使用一样的密钥(key),可以有效保护金融数据,常见的对称加密有DES,3DES,AES.RC2.RC4.RC5. DES3: 对DES算 ...
- HashMap 与 ConcrrentHashMap 使用以及源码原理分析
前奏一:HashMap面试中常见问题汇总 HashMap的工作原理是近年来常见的Java面试题,几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和Has ...
- jsfiddle 使用教程
最近有许多的Css 3 demo,因此为了方便查阅,就将demo部分放在jsfiddle ,方便日后翻阅. 这是 JSFIDDLE 的官网文档,都是英文,不过对照看还是可以的:官方文档 HTML区域: ...
- Jetbrains Idea连接TFS时配置的坑
#Team Explorer Everywherehttps://www.microsoft.com/en-us/search/result.aspx?q=team+explorer+everywhe ...
- OneAPM大讲堂 | 提高JavaScript性能的30个技巧
文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 您是网站管理员还是网页开发人员?想创建超快速的网站吗? 今天我们来看看 JavaScript,这项神奇而又复杂的技术.它使网站内容 ...
- Eclipse启动时发生An internal error occurred duri ng: "Initializing Java Tooling ----网上的坑爹的一个方法
补充一下: 上面的方法不行. 我的个人解决方法 出现这种问题的原因,我的是eclipse换了,工作目录还是用之前的那个 把build Automatically的钩去掉 假设我们是用之前的worksp ...
- [20190213]学习bbed-恢复删除的数据.txt
[20190213]学习bbed-恢复删除的数据.txt --//以前也做过类似测试,当时在用bbed做verify时错误都不处理,当时的想法就是能读出就ok了.--//而且当时也做成功,纯粹是依葫芦 ...
- Django + Uwsgi + Nginx 实现生产环境部署
本节内容 uwsgi 介绍 uwsgi安装使用 nginx安装配置 django with nginx 如何在生产上部署Django? Django的部署可以有很多方式,采用nginx+uwsgi的方 ...
- Selenium Webdriver 中的 executeScript 使用方法
1.使用executeScript 返回一个WebElement . 下例中我们将一个浏览器中的JavaScript 对象返回到客户端(C#,JAVA,Python等). IWebElement el ...
- Servlet(二):初识Servlet
在手动写完一个Servlet小例子后,是不是有很多疑问,接下来会为大家详细介绍Servlet的知识. 1.什么是Servlet 是在服务器上运行的小程序.一个servlet就是一个Java类,并且可以 ...