1

我一直在做一个大的任务,我几乎完成了,除了我需要帮助编写一个 Set 容器的__str____repr__函数。

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

我试过类似的东西:

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

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

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

我的元素存储在一个数组类中,我围绕它编写了 set 容器。我使用类似for item in self或的循环访问它if item in self

请帮忙?

4

3 回答 3

1

我怀疑以下方法会起作用:

def __repr__(self):
    return 'set([%s])' % ', '.join(self)
于 2013-02-12T21:05:11.333 回答
1

请参阅此答案__str__,详细说明和之间的区别__repr__

一个基本的实现是这样的:

def __repr__(self):
    return 'set(%r)' % [item for item in self]
于 2013-02-12T21:06:48.357 回答
0

像这样简单的事情可能已经足够好了,并且可以同时处理这两种方法:

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

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

    __str__ = __repr__
于 2013-02-12T23:18:30.990 回答