我希望当我使一个接口IB
继承自IA
,然后使用interface.providedBy()
查询{IA
和{
from zope import interface
class IA(interface.Interface):
pass
class IB(IA): # We inherit from IA
pass
class B(object):
interface.implements(IB)
if __name__ == '__main__':
b = B()
print 'Does B() provide IA? %s' % IA.providedBy(b)
print 'providedBy(B()): %s' % list(interface.providedBy(b))
运行此代码将生成以下输出:
^{pr2}$如果B()
提供IA
,如输出的第一行所示,为什么{
更新:我使用以下解决方法解决了这个问题。我不想看到任何提供程序类,基类(zope.interface.interface接口)或者任何重复的结果,所以我做了下面的工作。在
^{3}$
providedBy只返回立即提供的接口。有关如何获取所有接口的示例,请参见https://github.com/Pylons/substanced/blob/master/substanced/util/init.py#L398。在
相关问题 更多 >
编程相关推荐