<p>我有一个使用<code>**kw</code>的库函数,但是我想传递一个类似字典的类,这样我就可以重写<code>__getitem__</code>来跟踪它对字典中数据的访问。例如,在下面的代码中,调用libfn不打印access,而libfn2打印。在</p>
<pre><code>class Dtracker(dict):
def __init__(self):
dict.__init__(self)
def __getitem__(self,item):
print "Accessed %s" % str(item)
return dict.__getitem__(self, item)
def libfn(**kw):
a = kw["foo"]
print "a is %s" % a
return a
def libfn2(kw):
a = kw["foo"]
print "a is %s" % a
return a
d = Dtracker()
d["foo"] = "bar"
libfn(**d)
libfn2(d)
</code></pre>