文档

https://docs.python.org/3/extending/index.html

https://www.codeproject.com/articles/11805/embedding-python-in-c-c-part-i

https://www.codeproject.com/articles/11843/embedding-python-in-c-c-part-ii

https://www.codeproject.com/articles/820116/embedding-python-program-in-a-c-cplusplus-code

 

参考

https://docs.python.org/3.6/c-api/index.html

https://docs.python.org/3.6/c-api/capsule.html

 

工具

https://pypi.python.org/pypi/SIP

http://www.swig.org/tutorial.html 

引用计数

Ownership:对一个对象调用Py_INCREF()意味着拥有了该对象的所有权。需要通过调用Py_DECREF()释放所有权。所有权是相对于引用而言的,不是相对与对象而言的。

New Reference:如果一个函数调用返回了一个对象的新的引用,意味着该函数的调用者将拥有对象的所有权。

Borrowed Reference:如果一个函数调用返回了一个对象的借用的引用,意味着该函数的调用者没有对象的所有权。

Steal Reference:如果一个函数调用偷了一个参数的引用,意味着该函数的调用者不需要调用Py_DECREF()释放所有权。