繁体   English   中英

我需要重写什么方法才能使列表子项返回内部数据数组而不是自身?

[英]What method do I need to override for list child to return internal data array instead of itself?

我需要一个动态大小队列,因此我继承了listIterable并且测试了所有诸如附加,索引和迭代之类的内容,但是存在一个小问题。 诸如str(DataSet)之类的方法会返回一个空列表,而Python调试器的确会显示一个空列表,这是预期的,因为我没有在列表父目录中添加而是在内部数据中追加了列表。 我需要重写什么才能不返回self但返回self.data

class DataSet(collections.Iterable, list):

    data = collections.deque()
    index = 0
    max = 3

    def __add__(self, other):
        self.append(other)

    def append(self, item):


        if len(self.data) >= self.max:
            self.data.popleft()

        self.data.append(item)

    def __next__(self):

        if self.index < len(self.data):

            ret = self.data[self.index]
            self.index += 1
            return ret

        raise StopIteration

    def __getitem__(self, i):
        return self.data[i]

    def __iter__(self):
        self.index = 0
        return self

    def setMax(self, max):
        self.max = max

    def __len__(self):
        return len(self.data)

在此处输入图片说明

覆盖

def __str__(self):
    return str(self.data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM