Каковы методы класса итерации next () и __next __ () for, и в чем разница?

Я немного теряюсь на итераторах 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__() метода __iter__() ?

2 Solutions collect form web for “Каковы методы класса итерации next () и __next __ () for, и в чем разница?”

PEP 3114 переименовал iterator.next() в iterator.__next__() . Это было реализовано в версии 3.0. В приведенной выше ссылке содержатся все детали.

next был переименован в __next__ в Python 3. Что касается того, что он делает, он должен вернуть следующий элемент или повысить StopIteration если их больше нет.

  • python произвольно увеличивает итератор внутри цикла
  • Смутно с списками python: они или не являются итераторами?
  • Итерации по всем парам последовательных элементов из данного списка
  • hasNext в итераторах Python?
  • Объект 'numpy.float64' не повторяется
  • истощенные итераторы - что с ними делать?
  • Итератор файла Python по двоичному файлу с более новой идиомой
  • Итерировать итератор кусками (из n) в Python?
  •  
    Interesting Posts for Van-Lav

    Почему моя сеть Deep Q не создает простой Gridworld (Tensorflow)? (Как оценить Deep-Q-Net)

    Извлечение определенного значения листа из структуры дерева nltk с помощью Python

    Сортировка строк в строке, данные группы

    Обозначение Shebang: скрипты Python для Windows и Linux?

    TensorFlow – почему эта регрессия sofmax не узнает ничего?

    Keras: Недостаточно памяти при выполнении поиска сетки гиперпараметров

    MySQL: получить имя столбца или псевдоним из запроса

    настройка предпочтений Chrome w / Selenium Webdriver в Python

    неподдерживаемый тип (-ы) операндов для *: 'numpy.ndarray' и 'numpy.float64'

    проблема с PIP и virtualenv

    Использование регулярного выражения для замены повторений букв в верхнем регистре в python с помощью одной строчной буквы

    Django: получение предыдущего URL-адреса

    Matplotlib – метки (x, y) на линии со значением z

    Как добавить контекст в файл activation_email.txt в Django

    Когда я пытаюсь запустить vim в командной строке, я получаю ошибки Python

    Python - лучший язык программирования в мире.