我有一本字典,其中包含对象的值。我想在字典上使用 str 函数,这样它将递归地运行在字典中的所有其他对象上。
例如,我有以下对象:
>>> class Temp(object):
... def __init__(self):
... self._item = 8
... def __str__(self):
... return str(self._item)
...
>>> t = Temp()
>>> str(t)
'8'
我创建了一个字典并将对象放入其中:
>>> dict = {}
>>> dict['object'] = t
现在,当我在字典上使用 str 函数时,我得到以下结果:
>>> str(dict)
"{'object': <__main__.Temp object at 0x7fa08889f910>}"
但我想得到这个:
>>> str(dict)
"{'object': 8}"
请您参考如下方法:
也许你想要一个 dict 子类:
class strdict(dict):
def __str__(self):
return "{%s}"%', '.join("%r: %s"%p for p in self.items())
考虑在 Python 2 中使用 iteritems。
