为集合容器定义__str__和__repr__

时间:2013-02-12 20:58:17

标签: python string repr

我一直在完成一项大型任务,但我几乎已经完成了,除非我需要帮助编写Set容器的__str____repr__函数。

我从来没有这样做过,我也不知道该怎么做。在网上搜索,我仍然被卡住了。

我尝试过类似的事情:

'%s(%r)' % (self.__class__, self)

我需要打印出这样的代表:

'set([ELEMENT_1, ELEMENT_2,..., ELEMENT_N])'

我的元素存储在我编写set容器的数组类中。我使用for item in selfif item in self

之类的循环访问它

请帮帮忙?

3 个答案:

答案 0 :(得分:1)

我怀疑以下内容可行:

def __repr__(self):
    return 'set([%s])' % ', '.join(self)

答案 1 :(得分:1)

请参阅此answer,详细说明__str____repr__之间的区别。

基本实现类似于:

def __repr__(self):
    return 'set(%r)' % [item for item in self]

答案 2 :(得分:0)

这样简单的东西可能足够好并且会处理这两种方法:

class Set(object):
    def __init__(self):
        self.array = ...

    def __repr__(self):
        return '{}({!r})'.format(self.__class__.__name__, self.array)

    __str__ = __repr__