python的接口实现zope.interface示例

    xiaoxiao2022-07-06  213

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

     

     

    最新回复(0)