python的接口实现zope.interface示例
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()
总结
以上是生活随笔为你收集整理的python的接口实现zope.interface示例的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: NameError: name 'fil
- 下一篇: python try语句相关(try/e