Python使用了自動(dòng)化內(nèi)存管理克胳,這種管理機(jī)制以引用計(jì)數(shù)為基礎(chǔ),同時(shí)也引入了標(biāo)記-清除和分代收集兩種機(jī)制為輔的策略圈匆。
typedef struct_object {
? ? /* 引用計(jì)數(shù) */
? ? int ob_refcnt;
? ? /* 對(duì)象指針 */
? ? struct_typeobject *ob_type;
} PyObject;
/* 增加引用計(jì)數(shù)的宏定義 */
#define Py_INCREF(op)? ((op)->ob_refcnt++)
/* 減少引用計(jì)數(shù)的宏定義 */
#define Py_DECREF(op) \ //減少計(jì)數(shù)
? ? if (--(op)->ob_refcnt != 0) \
? ? ? ? ; \
? ? else \
? ? ? ? __Py_Dealloc((PyObject *)(op))