一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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

时间:2015-04-20 编辑:简简单单 来源:一聚教程网

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


热门栏目