抑制聚合中的属性

时间:2019-04-08 07:05:29

标签: python python-3.x tuples python-3.6 repr

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

0 个答案:

没有答案