Steven D'Aprano wrote: > There may be some other obscure built-in type that includes code objects, > but I can't imagine what it would be. I feel confident in saying that > functions, and functions alone, contain code. Even methods are just > wrappers around functions. Even built-in functions like len don't contain > code! (Or at least, their code isn't accessible from Python.) Which makes > sense, if you think about it: their code is part of the Python virtual > machine, not the object.
Interesting question. Iterators seem to have code objects: Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a = [1, 2, 3] >>> b = (x for x in a) >>> dir(b) ['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'gi_code', 'gi_frame', 'gi_running', 'next', 'send', 'throw'] >>> for name in dir(b): ... print name, type (getattr (b, name)) ... __class__ <type 'type'> __delattr__ <type 'method-wrapper'> __doc__ <type 'NoneType'> __format__ <type 'builtin_function_or_method'> __getattribute__ <type 'method-wrapper'> __hash__ <type 'method-wrapper'> __init__ <type 'method-wrapper'> __iter__ <type 'method-wrapper'> __name__ <type 'str'> __new__ <type 'builtin_function_or_method'> __reduce__ <type 'builtin_function_or_method'> __reduce_ex__ <type 'builtin_function_or_method'> __repr__ <type 'method-wrapper'> __setattr__ <type 'method-wrapper'> __sizeof__ <type 'builtin_function_or_method'> __str__ <type 'method-wrapper'> __subclasshook__ <type 'builtin_function_or_method'> close <type 'builtin_function_or_method'> gi_code <type 'code'> gi_frame <type 'frame'> gi_running <type 'int'> next <type 'method-wrapper'> send <type 'builtin_function_or_method'> throw <type 'builtin_function_or_method'> in the form of the gi_code attribute. No idea what it's for, although no reason to believe it shouldn't be there. (Very interesting demo you gave of primitive object creation. I' awed.) Mel. -- http://mail.python.org/mailman/listinfo/python-list