Я пытаюсь написать класс итератора, который позволит мне указать длину шагов, которые делает итератор. Но я застрял в этой проблеме.Класс Iterator с указанной длиной шагов
Мой код:
class Reverse:
def __init__(self, data, step):
self.data = data
self.index = len(data)
self.step = step
def __iter__(self):
return self
def __next__(self, step):
if self.index <= 0:
raise StopIteration
self.index = self.index - self.step
return self.data[self.index]
rev = Reverse('Drapsicle', 2)
это показывает мне письмо 'л' всегда
rev.__next__(2)
но петля дает мне: = TypeError: следующий() отсутствует 1 требуется позиционная аргумент: «шаг '`:
for char in rev:
print(char)
Вам, кажется, требуется аргумент 'step' в' __next__', но не используется, просто используя 'self.step'. – khelwood
Вы хотите подражать: '' Drapsicle '[:: - 2] '? – jfs
нет, не совсем, спасибо в любом случае – Pawel