在Python中定义一个合适的__repr__

时间:2015-03-23 21:13:34

标签: python string

学习Python并尝试学习制作课程。我定义了一个“Bag”类。对于__str__我有:

def __str__(self):
    return "<Bag: '{}' with {} items >".format(self.name, len(self.data))

它让我回来了:

<Bag: 'mystuff' with 3 items >

__repr__试图回复:<Bag: 'mystuff' with apple (1), pear (2) >

然而,我完全迷失了如何格式化该字符串。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

from collections import Counter

def __repr__(self):
    counter = Counter(self.data)
    items = ', '.join('%s (%s)' % (name, count) for name, count in counter.iteritems())
    return "<Bag: '{}' with {} >".format(self.name, items)