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]))