How to identify generator/iterator objects?
Kenneth McDonald
kenneth.m.mcdonald at sbcglobal.net
Wed Oct 25 15:36:46 EDT 2006
I'm trying to write a 'flatten' generator which, when give a
generator/iterator that can yield iterators, generators, and other data
types, will 'flatten' everything so that it in turns yields stuff by
simply yielding the instances of other types, and recursively yields the
stuff yielded by the gen/iter objects.
To do this, I need to determine (as fair as I can see), what are
generator and iterator objects. Unfortunately:
>>> iter("abc")
<iterator object at 0x61d90>
>>> def f(x):
... for s in x: yield s
...
>>> f
<function f at 0x58230>
>>> f.__class__
<type 'function'>
So while I can identify iterators, I can't identify generators by class.
Is there a way to do this? Or perhaps another (better) way to achieve
this flattening effect? itertools doesn't seem to have anything that
will do it.
Thanks,
Ken
More information about the Python-list
mailing list