python引用计数机制的使用

Python (205) 2023-06-09 15:35:41

说明

1、python里每一个东西都是对象,它们的核心就是一个结构体:PyObject。

2、具有简单、实时性。一旦没有引用,内存就直接释放了。不用像其他机制等到特定时机。

实例

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
typedefstruct_object{
intob_refcnt;
struct_typeobject*ob_type;
}PyObject;
PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用它的对象被删除,它的ob_refcnt就会减少
#definePy_INCREF(op)((op)->ob_refcnt++)//增加计数
#definePy_DECREF(op)\//减少计数
if(--(op)->ob_refcnt!=0)\
;\
else\
__Py_Dealloc((PyObject*)(op))
当引用计数为0时,该对象生命就结束了。
typedefstruct_object{ intob_refcnt; struct_typeobject*ob_type; }PyObject; PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用它的对象被删除,它的ob_refcnt就会减少 #definePy_INCREF(op)((op)->ob_refcnt++)//增加计数 #definePy_DECREF(op)\//减少计数 if(--(op)->ob_refcnt!=0)\ ;\ else\ __Py_Dealloc((PyObject*)(op)) 当引用计数为0时,该对象生命就结束了。
typedefstruct_object{
intob_refcnt;
struct_typeobject*ob_type;
}PyObject;

PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用它的对象被删除,它的ob_refcnt就会减少
#definePy_INCREF(op)((op)->ob_refcnt++)//增加计数
#definePy_DECREF(op)\//减少计数
if(--(op)->ob_refcnt!=0)\
;\
else\
__Py_Dealloc((PyObject*)(op))
当引用计数为0时,该对象生命就结束了。

以上就是python引用计数机制的使用,希望对大家有所帮助。

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

THE END

发表回复