引用对象

Python支持weak references作为第一类对象。有两种特定的对象类型直接实现弱引用。第一个是简单的参考对象,第二个作为原始对象的代理,尽可能地

// PyWeakref_Check ob

如果ob引用代理对象,则返回true .

int PyWeakref_CheckRef ob

如果ob参考对象,则返回true.

int PyWeakref_CheckProxy ob

如果ob代理对象,则返回true。

PyObject* PyWeakref_NewRef PyObject  *obPyObject *callback
Return value: New reference.

返回对象的弱引用对象ob。这将始终返回一个新的引用,但不保证创建一个新对象;可以返回现有的引用对象。第二个参数callback,可以是在ob被垃圾收集时接收通知的可访问对象;它应该接受一个参数,这将是弱参考对象本身。callback也可能是None要么 NULL。如果ob不是一个弱的可参考对象,或者callback不可调用NoneNULL,这将返回NULL并抬起TypeError.

PyObject * PyWeakref_NewProxy PyObject  *ob,PyObject  *callback
Return value: New reference.

返回弱参考代理对象的对象ob。这将始终返回一个新的引用,但不保证创建一个新对象;可以返回现有的代理对象。第二个参数callback可以是一个可调用的对象,它在ob被垃圾收集时接收通知;它应该接受一个参数,它将是弱引用对象本身。callback也可能是NoneNULL。如果ob不是弱引用对象,或者callback不可调用NoneNULL,这将返回NULL并提升TypeError.

PyObject * PyWeakref_GetObject PyObject  *ref
Return value: Borrowed reference.

从弱引用中返回引用的对象,ref。如果指示物不再存在,则返回Py_None.

注意

此函数返回借用的参考对于引用的对象。这意味着你应该总是在objectexcept上调用Py_INCREF(),如果你知道在你还在使用时它不能被销毁的话.

PyObject* PyWeakref_GET_OBJECT PyObject  *ref
Return value: Borrowed reference.

类似于PyWeakref_GetObject(),但实现为一个无误检查的宏.

评论被关闭。