Python面向对象编程之Zope.interface安装使用( @implementer)implements
一、接口简述
在我们所熟知的面向对象编程语言中,大多提供了接口(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相关推荐
- python面向对象编程之实例属性和类属性
廖雪峰python教程 面向对象编程之实例属性和类属性 练习 为了统计学生人数,可以给Student类增加一个类属性,每创建一个实例,该属性自动增加: # -*- coding: utf-8 -*- ...
- python面向对象编程之访问限制
廖雪峰python教程 面向对象编程之访问限制 https://www.liaoxuefeng.com/wiki/1016959663602400/1017496679217440 练习: 请把下面的 ...
- python面向对象编程之组合
前面讲了面向类与对象的继承,知道了继承是一种什么"是"什么的关系. 然而类与类之间还有另一种关系,这就是组合 先来看两个例子: 先定义两个类,一个老师类,老师类有名字,年龄,出生的 ...
- python 用twisted 问题 zope.interface
在python 27 安装了twisted 11. 结果在用的时候,import 包的时候,总是报错,zope.interface 问题. 后来找到解决方法: 下载 easy_install. htt ...
- python面向对象编程指南 脚本之家_Python面向对象编程之继承与多态详解
本文实例讲述了Python面向对象编程之继承与多态.分享给大家供大家参考,具体如下: Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一 ...
- Python基础-面向对象编程之特性(property)
Python基础-面向对象编程之特性property Python面向对象编程之特性(property) 一.统一访问原则 二.使用特性进行拦截操作 三.老式写法 Python面向对象编程之特性(pr ...
- python的scrapy框架的安装_Python3环境安装Scrapy爬虫框架过程及常见错误
Windows •安装lxml 最好的安装方式是通过wheel文件来安装,http://www.lfd.uci.edu/~gohlke/pythonlibs/,从该网站找到lxml的相关文件.假如是P ...
- twisted 安装时,安装顺序为 zope.interface -twisted
最近想学 twisted ,就去下载 twisted 的windows版本,并且 安装.运行 twisted 例子后,发现出现了问题: ImportError: Twisted requires zo ...
- python的接口实现zope.interface示例
python支持多继承,但是不支持接口,zope.inteface是其三方的接口实现库,在twisted中有大量使用 from zope.interface import Interface from ...
最新文章
- 【数据处理】python数据评估常用指标:ks、fpr、tpr
- 利用Hadoop Streaming处理二进制格式文件
- python中repeat函数用法
- cookie的expires属性和max-age属性
- [Java基础]Collections概述和使用
- html5 table删除修改,一个可以增加和删除行的table并可编辑表格中内容
- 关于redis性能问题分析和优化
- 基础篇:6.Android数据库编程---SQLite
- 第二周作业购物车程序
- 使用PMSM控制的puma560机械臂简单轨迹跟踪
- 论文期刊科普-SCI SSCI CSSCI CSCD和北大核心期刊分别是什么?
- linux zip 删除源文件,linux zip命令参数及用法详解--linux压缩zip文件命令
- 什么是word文件只读模式?
- winxp+win7蓝屏代码
- 做软件测试有发展前景吗?
- 使用python来进行用户流失预测的实战
- 【瑞模网】3dmax渲染完就卡住不动,渲染崩溃是怎么回事?
- itext pdf 加页眉和页脚加页数(二)
- 京东商品主图定时替换,90%卖家这样做
- iOS开发中plist文件的创建与简单读取
热门文章
- 获得诺贝尔奖之后影响力会下降?绘制精英科学家的职业生涯路线图
- if函数python作用_if __name__== __main__ 的意思(作用)python代码复用
- 啊哈算法系列(C语言、python、Java )
- java spring事务管理系统_Java Spring-事务管理概述
- RTX5 | 时间延时
- 学生汽车网页设计作品静态HTML网页模板源码 大学生汽车网站制作 简单汽车网页设计成品
- jquery/js 点击空白区域隐藏某一个层/元素
- thinkphp 模板页面出现空白
- 斑马打印机怎么打印二维码_万能打印机厂家是怎么改良打印机的?
- Spring Cloud文档阅读笔记-初识Spring Cloud(对Spring Cloud初步了解)