Kenneth McDonald wrote: > 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
>>> def f(x): ... for s in x: yield s ... >>> f([1]) <generator object at 0x01388E18> ? - Paddy. -- http://mail.python.org/mailman/listinfo/python-list