__next__ em geradores e iteradores e o que é um wrapper de método?

Eu estava lendo sobre gerador e iteradores e o papel de__next__() .

'__next__' in dir(mygen). é verdade

'__next__' in dir(mylist), é falso

Enquanto eu olhava mais fundo,

'__next__' in dir (mylist.__iter__()) é verdade

porque é__next__ disponível apenas para listar, mas apenas para__iter__() emygen mas nãomylist. Como__iter__() ligar__next__ quando estamos percorrendo a lista usando a compreensão da lista

Tentando aumentar manualmente (+1) o gerador, chameimygen.__next__(). Isso não existe. Existe apenas comomygen.__next__que é chamado de wrapper de método.

o que é um invólucro de método e o que ele faz? Como é aplicado aqui: emmygen() and __iter__() ?

E se__next__ é o que o gerador e o iterador fornecem (e suas únicas propriedades); qual é a diferença entre gerador e iterador? *

Resposta 3: Resolvido, conforme observado pelo mod / editor:

Diferença entre Geradores e Iteradores do Python

UPDATE: o gerador e o iterador têm__next__(). Meu erro. Olhando para os logs, de alguma formamygen.__next__() teste estava me dando erro de exceção stopiteration. Mas não consegui duplicar esse erro novamente.

Obrigado a todos por responder!

questionAnswers(3)

yourAnswerToTheQuestion