弱引用對(duì)象?
Python 支持 “弱引用” 作為一類對(duì)象。具體來(lái)說(shuō),有兩種直接實(shí)現(xiàn)弱引用的對(duì)象。第一種就是簡(jiǎn)單的引用對(duì)象,第二種盡可能地作用為一個(gè)原對(duì)象的代理。
-
int
PyWeakref_Check(ob)? 如果 “ob” 是一個(gè)引用或者一個(gè)代理對(duì)象,則返回 true。
-
int
PyWeakref_CheckRef(ob)? 如果 “ob” 是一個(gè)引用,則返回 true。
-
int
PyWeakref_CheckProxy(ob)? 如果 “ob” 是一個(gè)代理對(duì)象,則返回 true。
-
PyObject*
PyWeakref_NewRef(PyObject?*ob, PyObject?*callback)? - Return value: New reference.
返回對(duì)象 ob 的一個(gè)弱引用對(duì)象。 該函數(shù)總是會(huì)返回一個(gè)新的引用,但不保證創(chuàng)建一個(gè)新的對(duì)象;它有可能返回一個(gè)現(xiàn)有的引用對(duì)象。 第二個(gè)形參 callback 為一個(gè)可調(diào)用對(duì)象,它會(huì)在 ob 被作為垃圾回收時(shí)接收通知;它應(yīng)該接受一個(gè)單獨(dú)形參,即弱引用對(duì)象本身。 callback 也可以為
None或NULL。 如果 ob 不是一個(gè)弱引用對(duì)象,或者如果 callback 不是可調(diào)用對(duì)象,None或NULL,該函數(shù)將返回NULL并且引發(fā)TypeError。
-
PyObject*
PyWeakref_NewProxy(PyObject?*ob, PyObject?*callback)? - Return value: New reference.
返回對(duì)象 ob 的一個(gè)弱引用代理對(duì)象。 該函數(shù)將總是返回一個(gè)新的引用,但不保證創(chuàng)建一個(gè)新的對(duì)象;它有可能返回一個(gè)現(xiàn)有的代理對(duì)象。 第二個(gè)形參 callback 為一個(gè)可調(diào)用對(duì)象,它會(huì)在 ob 被作為垃圾回收時(shí)接收通知;它應(yīng)該接受一個(gè)單獨(dú)形參,即弱引用對(duì)象本身。 callback 也可以為
None或NULL。 如果 ob 不是一個(gè)弱引用對(duì)象,或者如果 callback 不是可調(diào)用對(duì)象,None或NULL,該函數(shù)將返回NULL并且引發(fā)TypeError。
-
PyObject*
PyWeakref_GetObject(PyObject?*ref)? - Return value: Borrowed reference.
返回弱引用對(duì)象 ref 的被引用對(duì)象。如果被引用對(duì)象不再存在,則返回
Py_None。注解
該函數(shù)返回被引用對(duì)象的一個(gè)**借來(lái)的引用**。這意味著除非你很清楚在你使用期間這個(gè)對(duì)象不可能被銷毀,否則你應(yīng)該始終對(duì)該對(duì)象調(diào)用
Py_INCREF()。
-
PyObject*
PyWeakref_GET_OBJECT(PyObject?*ref)? - Return value: Borrowed reference.
類似
PyWeakref_GetObject(),但實(shí)現(xiàn)為一個(gè)不做類型檢查的宏。
