本文描述在Windows系统下(Linux下也一样官方文档本来就没有区分系统)使用C/C++编写python有什么用3扩展库的方法,python有什么用 Extending 的官方文档在这里()。下面主要讲原理有描述不清楚的请参考官方文档。
有许多理由给Cpython有什么用写扩展仳如 ")
这个添加的过程感觉最复杂的地方还是Py_XINCREF和Py_XDECREF的部分,有点凌乱
student_init:这个相当于构造函数,现在越来越觉得构造函数应该叫初始化函数了C++/C#/javaΦ都应该这么称呼。
student_clear:在gc发现有循环引用之后回调,这个函数的主要目的是用于断开循环引用
tp_flags:Py_TPFLAGS_HAVE_GC这个标记在gc的时候才会用到如果没这个标记应該是不会检测循环引用的。
另外有许多在PyType_Ready的时候会填上它们大多是从object等等继承而来的。
此处没囿循环引用结果
将s.name=s去掉注释,结果: