如何在python中覆盖dict []动作?

时间:2013-01-28 03:08:37

标签: python-3.x

我想在字典中存储某种对象。该对象有一个名为'lastAccessDate'的属性,每当程序访问该对象时,我希望该对象的属性更新为当前系统时间,这就像这样

def getValue(key):
    obj = objectDict.get(key,None)
    if obj is not None:
        obj.lastAccessDate = getSystemDate()
    return obj

程序必须通过这个api才能访问该对象,否则就会出现bug.i希望我可以像普通dict一样操作dict,当我使用objectDict [key]或objectDict.get()来访问密钥时,它会自动执行此操作。如何在python中实现它?

1 个答案:

答案 0 :(得分:1)

您可以通过[]重新实施或提供__getitem__访问者,这似乎会使您的自定义对象成为词典。如果您需要提供设置支持,请实施__setitem__

http://docs.python.org/2/reference/datamodel.html#emulating-container-types