__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!