我有一堆字典,我想用类型信息对其进行注释,以便以后能够为它们获取适配器。在以下示例中,失败的情况是我想要做的,而另一种情况显示的是工作版本。是否有可能在不引入额外对象的情况下让第一个版本工作?创建字典的代码不容易更改,因此我正在寻找最简单且非侵入性的方式来添加一些类型信息。
from zope.interface import Interface, implements, directlyProvides
from zope.interface.registry import Components
registry = Components()
class IA(Interface):
pass
# this one fails
data = {}
directlyProvides(data, IA)
# this way it works
class X(dict):
pass
data = X()
directlyProvides(data, IA)