我刚刚查看了这个非常有趣的思维导图:
http://www.mindmeister.com/10510492/python-underscore
我想知道一些新的含义,例如__code__
和__closure__
。我用Google搜索,但没有具体的东西。有谁知道吗?
答案 0 :(得分:7)
名为func_X
的函数属性已重命名为使用__X__
表单,在函数属性名称空间中为用户定义的属性释放这些名称。也就是说,func_closure
,func_code
,func_defaults
,func_dict
,func_doc
,func_globals
,func_name
已重命名为{{1}分别是{},__closure__
,__code__
,__defaults__
,__dict__
,__doc__
,__globals__
。
基本上,同样是旧的Python 2,花哨的新Python 3000名称。
您可以在PEP 232
中详细了解其中大部分内容答案 1 :(得分:6)
你实际上在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'>]
编辑:有关这些结构含义的更多详细信息,请阅读Python参考资料中的“用户定义函数”和“代码对象”explained in the Data Model章节。
答案 2 :(得分:4)
他们曾经被称为
func_closure (now __closure__), func_code (now __code__)
(这应该有助于谷歌搜索)。
以下简短说明from here。
答案 3 :(得分:0)
这些是Python的special方法。