python实现接口的库zope.interface使用示例

python不支持接口,不过我们可以利用第三方库 zope.inteface 实现接口,下面是示例。

from zope.interface import Interface
from zope.interface import implementer
import socket
class IHostNameResolver(Interface):
    def getHostByName(name, timeout = (1, 3, 11, 45)): # 可以不用self
        """
        Resolve the domain name C{name} into an IP address.
        """
"""
类装饰器等价于:implementer(IHostNameResolver)(HostNameResolver)
"""
@implementer(IHostNameResolver)
class HostNameResolver:
    def getHostByName(self, name, timeout = (1, 3, 11, 45)):
        try:
            address = socket.gethostbyname(name)
        except socket.error:
            return 'none'
        else:
            return address
resolver = HostNameResolver()
print resolver.getHostByName('localhost')
# 判断HostNameResolver是否实现了接口IHostNameResolver
print IHostNameResolver.implementedBy(HostNameResolver) # True, 调用 SpecificationBasePy.implementedBy()

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索class
接口
zope.interface、zope.interface 安装、zope.interface是什么、zope.interface 下载、zope.interface linux,以便于您获取更多的相关知识。

时间: 2024-10-03 14:20:02

python实现接口的库zope.interface使用示例的相关文章

利用Python中的mock库对Python代码进行模拟测试_python

 如何不靠耐心测试 通常,我们编写的软件会直接与那些我们称之为"肮脏的"服务交互.通俗地说,服务对我们的应用来说是至关重要的,它们之间的交互是我们设计好的,但这会带来我们不希望的副作用--就是那些在我们自己测试的时候不希望的功能. 比如,可能我们正在写一个社交软件并且想测试一下"发布到Facebook的功能",但是我们不希望每次运行测试集的时候都发布到Facebook上. Python的unittest库中有一个子包叫unittest.mock--或者你把它声明成一

dll动态库-python 调用DLL 动态库之后 怎么释放

问题描述 python 调用DLL 动态库之后 怎么释放 各位大神,请问python 利用 ctypes调用DLL之后怎么释放啊 解决方案 不需要释放,CDLL析构中会自动释放

初识Django —Python API接口编程入门

初识Django -Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言,基于Django框架,利用MVC模型,实现后台方面的针对数据库的API开发.先了解一下互联网的WEB架构, 如上图: 互联网的WEB架构大致分为三层,web层.app层和数据库层.Web层:如apache网站服务器:app层主要是应用业务:DB指后台数据库.随着互联网的高速发展,网站访问量的增长.数

python安装-Python 在安装lxml库的时候 一直搞不定

问题描述 Python 在安装lxml库的时候 一直搞不定 各位哥哥 哥哥们,不知道这是什么原因,也不知道我是否安装成功了 lxml 我也下载了 setuptools-20.2.2 ,按步骤安装的,可是还是不行,请各位哥哥 哥哥们帮小弟解决一下吧~ 痛苦中-- 解决方案 你下载它的pip包 然后python 安装setup.py 看是否成功

oauth-利用新浪的python sdk接口时,需要OAuth2.0认证,如何模拟获取code码

问题描述 利用新浪的python sdk接口时,需要OAuth2.0认证,如何模拟获取code码 我在使用新浪的python sdk接口时,涉及OAuth2.0认证,其中要获取code码.如何用程序模拟授权,然后获取code码?

Python和GO语言实现的消息摘要算法示例_python

常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现. 一.python消息摘要示例 代码如下: 复制代码 代码如下: #! /usr/bin/python '''       File      : testHash.py       Author    : Mike       E-Mail    : Mike_Zhang@live.com ''' import hashlib src = raw_input(

PHP的cURL库简介及使用示例

 这篇文章主要介绍了PHP的cURL库简介及使用示例,需要的朋友可以参考下     使用PHP的cURL库可以简单和有效地去抓网页.你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了.无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库. PHP中的CURL函数库(Client URL Library Function)    代码如下: curl_close - 关闭一个

Python中捕捉详细异常信息的代码示例_python

大家在开发的过程中可能时常碰到一个需求,需要把Python的异常信息输出到日志文件中. 网上的办法都不太实用,下面介绍一种实用的,从Python 2.7源码中扣出来的. 废话不说 直接上代码,代码不多,注释比较多而已. import sys, traceback traceback_template = '''Traceback (most recent call last): File "%(filename)s", line %(lineno)s, in %(name)s %(ty

Python模块和标准库的使用教程

#!/usr/bin/env python # coding=utf-8 lang = "python" 引入模块 >>> import sys >>> sys.path.append("~/Documents/VBS/StartLearningPython/2code/pm.py") >>> import pm >>> pm.lang 'python' 当Python解释器读取了 .py 文件