__next__ в генераторах и итераторах и что такое метод-обертка?
Я читал о генераторе и итераторах и роли__next__()
.
'__next__' in dir(mygen)
, правда
'__next__' in dir(mylist)
ложно
Когда я посмотрел глубже,
'__next__' in dir (mylist.__iter__())
правда
почему__next__
доступно только для списка, но только для__iter__()
а такжеmygen
но нетmylist
, Как__iter__()
вызов__next__
когда мы шагаем по списку, используя список-понимание
Пытаясь вручную увеличить (+1) генератор, я позвонилmygen.__next__()
, Не существует Он существует только какmygen.__next__
который называется метод-обертка.
что такое метод-обертка и что он делает? Как это применяется здесь: вmygen() and __iter__() ?
если__next__
то, что обеспечивают и генератор, и итератор (и их единственные свойства), тогда в чем разница между генератором и итератором? *
Ответ 3: Решено, как отметил мод / редактор:
Разница между генераторами и итераторами Python
ОБНОВЛЕНИЕ: и генератор, и итератор имеют__next__()
, Виноват. Смотря на логи, как-тоmygen.__next__()
Тест дал мне ошибку исключения стоп-титрования. Но я не смог повторить эту ошибку снова.
Спасибо всем за ответы!