我一直在寻找的源代码给hasattr内置功能,发现一对夫妇引起了我的兴趣线:

Py_INCREF(Py_False);
return Py_False;

...

Py_INCREF(Py_True);
return Py_True;

是不是Py_FalsePy_True全局值?只是出于纯粹的好奇,为什么Python中保持引用计数为这些变量?

有帮助吗?

解决方案

这是使所有的物体装卸均匀。如果我写的是从一个函数处理返回值的C代码,我不得不增加和减少该对象的引用计数。如果函数返回我真的,我不希望有检查,看看它的那些特殊的天体之一,以了解是否操纵其引用计数。我可以相同对待的所有对象。

通过处理真和假(和无,顺便说一句)相同的所有其他对象,C代码要简单得多整个

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top