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 adef libfn2(kw): a = kw["foo"] print "a is %s" % a return ad = Dtracker()d["foo"] = "bar" libfn(**d)libfn2(d)解决方法 做这个
class Dtracker(dict): def __init__(self,*arg,**kw): super(Dtracker,self).__init__(*arg,**kw) def __getitem__(self,item): print "Accessed %s" % str(item) return dict.__getitem__(self,item)def track( fn ): def tracked_fn( **kw ): kw= Dtracker( kw ) fn( kw ) return tracked_fn@trackdef libfn(kw): a = kw["foo"] print "a is %s" % a return a
这或多或少的作品
>>> libfn( **{'foo':'bar'} )Accessed fooa is bar总结
以上是内存溢出为你收集整理的python – 自定义词典通过** kw全部内容,希望文章能够帮你解决python – 自定义词典通过** kw所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)