Fredrik Lundh wrote: > Terry Reedy wrote: > >>> def isgenerator(func): >>> return func.func_code.co_flags == 99 >>> >>> but it is rather ugly (horrible indeed). >> >> To me, part of the beauty of Python is that is so easy to write such things >> so compactly, so that we do not need megaAPIs with hundreds of functions >> and methods. > > so what's so "easy" about the magic constant 99 ? > > is there some natural and obvious connection between generators and that > number that I'm missing, or is that constant perhaps best hidden inside > some introspection support module?
It seems to be a combination of CO_NOFREE, CO_GENERATOR, CO_OPTIMIZED and CO_NEWLOCALS. The first four CO_ constants are already in inspect.py, the newer ones (like CO_GENERATOR) aren't. I wonder whether a check shouldn't just return (co_flags & 0x20), which is CO_GENERATOR. Georg _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com