簡體   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