Sobes.tech
Junior — Middle

Kādi soļi ir nepieciešami, lai īstenotu savu iterācijas mehānismu datu kolekcijā?

sobes.tech AI

Atbilde no AI

Lai īstenotu savu iterācijas mehānismu Python kolekcijā, jums jādefinē iterators objekts, kas īsteno metodes __iter__() un __next__().

Galvenie soļi:

  1. Izveidojiet kolekcijas klasi, kas īsteno metodi __iter__(), kas atgriež iteratoru.
  2. Izveidojiet iteratora klasi, kas saglabā pašreizējās pozīcijas stāvokli un īsteno metodi __next__(), kas atgriež nākamo elementu vai izmet StopIteration beigās.

Piemērs:

class ManaKolekcija:
    def __init__(self, data):
        self.data = data

    def __iter__(self):
        return MansIterator(self.data)

class MansIterator:
    def __init__(self, data):
        self.data = data
        self.index = 0

    def __next__(self):
        if self.index < len(self.data):
            rezultāts = self.data[self.index]
            self.index += 1
            return rezultāts
        else:
            raise StopIteration

# Lietošana
col = ManaKolekcija([1, 2, 3])
for item in col:
    print(item)

Tādējādi jūs izveidosiet savu iteratoru, ko var izmantot for ciklos un citās konstrukcijās, kas strādā ar iteratoriem.