Python_MISC2
来源:互联网 发布:货运信息部软件 编辑:程序博客网 时间:2024/06/06 08:59
Embeded Python Interpreter To Your Application
[ 引用记数 ]
* Python对象都创建在堆上
* 在进过函数时加引用记数,完成时减引用记数的原因是:在这个Scope锁住Python对象,以防它被析构
* 内创建->外删除:一些创建对象的Py_* API 创建出来的对象记数为一,对象用完后调用Py_DECREF是使用者的责任
* 删除函数:一些Py_* API当你把对象传进去后,就相当于把对象的生命周期托管给这些API了,你再也不管了。(reference-stealing function)
* Borrowed-reference: 如果对象进入函数后,函数不控制对象的生命周期,或,从一些Py_* API返回的对象,使用都不控制该对象的生命周期
*
[ 异常 ]
* 绝大多数Py_* API返回 NULL / -1 / false标示函数异常发生,极少数需要动用PyErr_Occurred()来检测
* 异常对象是每个线程持有的
*