字典作为属性

你好.
(如何)我可以有一个类属性d,使得d['foo']='bar'将运行
以'foo'和'bar'作为参数的类的某个函数?
先谢谢你.
--
我的音乐:http://www.thanostsouanas.com/http://thanos.sians.org/.:暹罗音乐:http://www.sians.org/

# 回答1


塔诺斯·楚亚纳斯写道:
我想你的意思是:
A类:
定义__init__(自身):
Self.d={}
Def dict_change(自身、关键字、值):
打印键,值
A=A()
A.D['foo']='bar'
-->FOO BAR
'A'只引用'd',它不会知道谁有这个副本
参考资料和对它做了什么.
您可以创建的是一个围绕'd'的包装,它传递__getitem__,
__setitem__以及基础dict和调用所需的所有其他方法
A的合适的钩子方法
类WrapedDict:
Def__init__(自身,所有者,d):
Self.owner=所有者
Self.d=d
Def__setitem__(自身、关键字、值):
Self.owner.dict_Changed(键,值)
Self.d[键]=值
Def__getitem(自身,关键字):
返回self.d[键]
……
在A.__init__中
Self.d=WrapedDict(self,{})
您也可以从dict中派生WrapedDict的子类...
--
本杰明·尼曼
电子邮件:Odahoda Dot de粉色
WWW:http://www.odahoda.de/

标签: python

添加新评论