Для чего нужны методы итерационного класса next () и __next __ () и в чем разница?

Я немного запутался в итераторах python. Я их иногда использую, но не помню, чтобы сам создавал. Я откуда-то читал, что не помню где, такой код:

class Foo(object):
    def __init__(self):
        self.something = "initial_value"
    def __iter__(self):
        return self
    def next(self):
        # I don't quite remember what was here :S
        return self.something

Я думаю, метод __ iter __ () должен возвращать итератор, и у этого итератора должен быть следующий метод, верно? Тогда как насчет метода __ next __ () ? это для прямой итерации по классу без возврата другого итератора с помощью метода __ iter __ () ?

8
задан martineau 9 September 2017 в 16:41
поделиться