Yes, your code is the same as the first example generator with a single yield in a loop.
The same conversion for the later examples with multiple yield statements, try: except: or try: finally: will be much hairier, though.
363 karma · joined February 17, 2011
The same conversion for the later examples with multiple yield statements, try: except: or try: finally: will be much hairier, though.
Seriously though, not being able to define a serialization method can be a limitation. However, it is always possible to turn a generator into an iterator class with whatever methods you like, but the code may end up looking totally different.
There are other drawbacks to exec though, some people have disabled exec for security reasons and it's opaque to things like pypy.
The usual #python response to people using the array module was to instead consider NumPy (with its excellent arrays) or use normal lists and PyPy to make it fast.