Jak w Pythonie sprawdzić, czy obiekt jest obiektem generatora?
Próbuję tego -
>>> type(myobject, generator)
podaje błąd -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'generator' is not defined
(Wiem, że mogę sprawdzić, czy obiekt ma next
metodę, aby był generatorem, ale chcę mieć jakiś sposób, za pomocą którego mogę określić typ dowolnego obiektu, nie tylko generatorów.)
from types import GeneratorType;type(myobject, GeneratorType)
da ci właściwy wynik dla obiektów klasy „generator”. Ale jak sugeruje Daenyth, niekoniecznie jest to właściwa droga.
__next__
, w rzeczywistości akceptujesz dowolny iterator, a nie tylko generatory - co jest bardzo prawdopodobne, że chcesz.