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
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.
They used to be called
func_closure (now __closure__), func_code (now __code__)
(that should help googling).
A short explanation from here below.
这些是Python的特殊方法。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.