Jas*_*ker 21 python reference-counting python-c-api
我正在查看hasattr内置函数的源代码,并注意到一些引起我兴趣的行:
Py_INCREF(Py_False);
return Py_False;
...
Py_INCREF(Py_True);
return Py_True;
Run Code Online (Sandbox Code Playgroud)
不是Py_False和Py_True全球价值观?出于纯粹的好奇心,为什么Python保留这些变量的引用计数?
Ned*_*der 22
这是为了使所有对象处理均匀.如果我正在编写处理函数返回值的C代码,我必须递增和递减该对象的引用计数.如果函数返回True,我不想检查它是否是那些特殊对象之一,知道是否操纵它的引用计数.我可以完全相同地对待所有对象.
通过将True和False(和None,btw)视为与所有其他对象相同,C代码在整个过程中要简单得多.
| 归档时间: |
|
| 查看次数: |
1608 次 |
| 最近记录: |