How to check if an object is a generator object in python?

Pushpak Dagade picture Pushpak Dagade · Jun 20, 2011 · Viewed 48k times · Source

In python, how do I check if an object is a generator object?

Trying this -

>>> type(myobject, generator)

gives the error -

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'generator' is not defined

(I know I can check if the object has a next method for it to be a generator, but I want some way using which I can determine the type of any object, not just generators.)

Answer

utdemir picture utdemir · Jun 20, 2011

You can use GeneratorType from types:

>>> import types
>>> types.GeneratorType
<class 'generator'>
>>> gen = (i for i in range(10))
>>> isinstance(gen, types.GeneratorType)
True