Em python, como verifico se um objeto é um objeto gerador?
Tentando isso -
>>> type(myobject, generator)
dá o erro -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'generator' is not defined
(Eu sei que posso verificar se o objeto tem um next
método para ser um gerador, mas quero usar um meio para determinar o tipo de qualquer objeto, não apenas geradores.)
from types import GeneratorType;type(myobject, GeneratorType)
lhe dará o resultado adequado para objetos da classe 'gerador'. Mas, como Daenyth implica, esse não é necessariamente o caminho certo a seguir.
__next__
, na verdade está aceitando qualquer iterador, não apenas geradores - o que provavelmente é o que você deseja.