python的接口实现zope.interface示例
16lz
2021-01-22
python支持多继承,但是不支持接口,zope.inteface是其三方的接口实现库,在twisted中有大量使用
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()
更多相关文章
- linux下socket实现TCP通信的简单程序接口封装
- window下使用vnc远程登录linux图形界面和运行应用程序 和odroid
- Android---Volley请求天气接口JSON解析
- Android调用百度地图Web端接口,实现百度定位、导航
- 避免在Java接口中使用数组的3个理由
- 【Java笔记】——抽象类和接口
- C#/Java 调用WSDL接口及方法
- 第三部分:Android 应用程序接口指南---第二节:UI---第六章 对话框
- sc7731 Android 5.1 Camera 学习之二 framework 到 HAL接口整理