python引用計(jì)數(shù)機(jī)制的使用
說明
1、python里每一個(gè)東西都是對(duì)象,它們的核心就是一個(gè)結(jié)構(gòu)體:PyObject。
2、具有簡單、實(shí)時(shí)性。一旦沒有引用,內(nèi)存就直接釋放了。不用像其他機(jī)制等到特定時(shí)機(jī)。
實(shí)例
typedefstruct_object{
intob_refcnt;
struct_typeobject*ob_type;
}PyObject;
PyObject是每個(gè)對(duì)象必有的內(nèi)容,其中ob_refcnt就是做為引用計(jì)數(shù)。當(dāng)一個(gè)對(duì)象有新的引用時(shí),它的ob_refcnt就會(huì)增加,當(dāng)引用它的對(duì)象被刪除,它的ob_refcnt就會(huì)減少
#definePy_INCREF(op)((op)->ob_refcnt++)//增加計(jì)數(shù)
#definePy_DECREF(op)\//減少計(jì)數(shù)
if(--(op)->ob_refcnt!=0)\
;\
else\
__Py_Dealloc((PyObject*)(op))
當(dāng)引用計(jì)數(shù)為0時(shí),該對(duì)象生命就結(jié)束了。
以上就是python引用計(jì)數(shù)機(jī)制的使用,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。