I just checked out this very interesting mindmap:
http://www.mindmeister.com/10510492/python-underscore
And I was wondering what some of the new ones mean, like __code__ and __closure__. I googled around but nothing concrete. Does anyone know?
I just checked out this very interesting mindmap:
http://www.mindmeister.com/10510492/python-underscore
And I was wondering what some of the new ones mean, like __code__ and __closure__. I googled around but nothing concrete. Does anyone know?
The function attributes named func_X have been renamed to use the __X__ form, freeing up these names in the function attribute namespace for user-defined attributes. To wit, func_closure, func_code, func_defaults, func_dict, func_doc, func_globals, func_name were renamed to __closure__, __code__, __defaults__, __dict__, __doc__, __globals__, __name__, respectively.
Basically, same old Python 2 stuff, fancy new Python 3000 name.
You can learn more about most of these in PEP 232
They used to be called
func_closure (now __closure__), func_code (now __code__)
(that should help googling).
A short explanation from here below.
You actually have analogous fields in CPython 2.x:
>>> first = lambda x: lambda y: x
>>> f = first(2)
>>> type(f.func_code)
<type 'code'>
>>> map(type, f.func_closure)
[<type 'cell'>]
Edit: For more details on the meaning of these constructs please read about "user defined functions" and "code objects" explained in the Data Model chapter of the Python Reference.