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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4