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()

更多相关文章

  1. linux下socket实现TCP通信的简单程序接口封装
  2. window下使用vnc远程登录linux图形界面和运行应用程序 和odroid
  3. Android---Volley请求天气接口JSON解析
  4. Android调用百度地图Web端接口,实现百度定位、导航
  5. 避免在Java接口中使用数组的3个理由
  6. 【Java笔记】——抽象类和接口
  7. C#/Java 调用WSDL接口及方法
  8. 第三部分:Android 应用程序接口指南---第二节:UI---第六章 对话框
  9. sc7731 Android 5.1 Camera 学习之二 framework 到 HAL接口整理

随机推荐

  1. c语言加减乘除代码
  2. c语言必背入门代码
  3. c语句以句号结束对吗
  4. c++学习路线
  5. c语言数组中以列优先对吗
  6. c语言函数调用例子
  7. c语言的文件存取方式只能是顺序存取?
  8. c语言打印菱形
  9. c++异常处理的方法
  10. 格式化代码是什么意思