我一直在完成一项大型任务,但我几乎已经完成了,除非我需要帮助编写Set容器的__str__
和__repr__
函数。
我从来没有这样做过,我也不知道该怎么做。在网上搜索,我仍然被卡住了。
我尝试过类似的事情:
'%s(%r)' % (self.__class__, self)
我需要打印出这样的代表:
'set([ELEMENT_1, ELEMENT_2,..., ELEMENT_N])'
我的元素存储在我编写set容器的数组类中。我使用for item in self
或if item in self
请帮帮忙?
答案 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__