python的接口实现zope.interface示例
python支持多繼承,但是不支持接口,zope.inteface是其三方的接口實(shí)現(xiàn)庫(kù),在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.
? ? ? ? """
?
"""
類(lèi)裝飾器等價(jià)于: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是否實(shí)現(xiàn)了接口IHostNameResolver
print IHostNameResolver.implementedBy(HostNameResolver) # True, 調(diào)用 SpecificationBasePy.implementedBy()
?
?
總結(jié)
以上是生活随笔為你收集整理的python的接口实现zope.interface示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: NameError: name 'fil
- 下一篇: python try语句相关(try/e