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()来检测

* 异常对象是每个线程持有的