On this page
弱参考对象
Python 支持弱引用作为一流对象。有两种直接实现弱引用的特定对象类型。第一个是简单的引用对象,第二个则尽可能地充当原始对象的代理。
int
PyWeakref_Check
(ob)- 如果* ob *是引用或代理对象,则返回 true。
int
PyWeakref_CheckRef
(ob)- 如果* ob *是参考对象,则返回 true。
int
PyWeakref_CheckProxy
(ob)- 如果* ob *是代理对象,则返回 true。
PyObject *
PyWeakref_NewRef
(PyObject ob ,PyObject 回调)- 返回值:新参考.
返回对象* ob 的弱引用对象。这将始终返回新的引用,但不能保证创建新的对象;现有参考对象可能会返回。第二个参数 callback 可以是一个可调用对象,当 ob 被垃圾回收时,该对象将接收通知。它应该接受一个参数,即弱引用对象本身。 回调也可以是None
或NULL
。如果 ob 不是弱引用对象,或者 callback *是不可调用的None
或NULL
,则将返回NULL
并引发TypeError。
返回对象* ob 的弱引用代理对象。这将始终返回新的引用,但不能保证创建新的对象;现有的代理对象可能会返回。第二个参数 callback 可以是一个可调用对象,当 ob 被垃圾回收时,该对象将接收通知。它应该接受一个参数,即弱引用对象本身。 回调也可以是None
或NULL
。如果 ob 不是弱引用对象,或者 callback *是不可调用的None
或NULL
,则将返回NULL
并引发TypeError。
从弱引用* ref *返回引用的对象。如果引用对象不再有效,则返回Py_None
。
Note
该函数返回被引用对象的“借用引用”。这意味着您应该始终在对象上调用Py_INCREF(),除非您知道在使用它时无法销毁它。
与PyWeakref_GetObject()相似,但实现为不进行错误检查的宏。