Blc*_*ght 11
正如user2864740所评论的那样,这些术语在Python C API文档的"简介"页面的" 引用计数详细信息"部分中定义.以下是相关段落:
Python/C API中函数的引用计数行为最好用引用的所有权来解释.所有权属于引用,永远不属于对象(对象不归属于:它们始终是共享的)."拥有引用"意味着在不再需要引用时负责调用Py_DECREF.所有权也可以被转移,这意味着接收引用所有权的代码然后负责通过在不再需要时调用Py_DECREF()或Py_XDECREF()来最终减少它 - 或者传递这个责任(通常给它的调用者) ).当函数将引用的所有权传递给其调用者时,调用者被称为接收新引用.如果没有转让所有权,则称呼叫者借用参考.对借来的参考文献没有什么需要做的.
相反,当调用函数传入对象的引用时,有两种可能性:函数窃取对象的引用,或者它没有.窃取引用意味着当您传递对函数的引用时,该函数假定它现在拥有该引用,并且您不再对它负责.