BigTuple
继承元组和聚合列表。 __repr__
无法正常工作。那应该产生BigTuple(*(1,2,3))
,但是使用它聚合的列表的repr
函数。如何抑制这种行为并使用类__repr__
中定义的BigTuple
。我汇总列表是因为我想对初始化时提供的项目进行排序
我尝试不汇总列表。示例:
self.__values = values
而不是聚合:
self.__values = sorted(values)
请参见下面的主要代码
class BigTuple(tuple):
def __init__(self, *values):
self.__values = sorted(values)
def __iadd__(self, other):
assert hasattr(other, "__iter__")," Not an iterable"
self.__values.extend(other)
return self.__values
def __repr__(self):
return 'BigTuple(*{!r})'.format(self.__values)
cd = BigTuple((1,2,4,[5]))
repr(cd) # [1,2,4,[5]] instead of BigTuple(*(1,2,4,[5]))