Skip to main content
 首页 » 编程设计

python之对字典的所有值使用 'str' 方法

2025年05月04日11jillzhang

我有一本字典,其中包含对象的值。我想在字典上使用 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。