PATH:
usr
/
share
/
doc
/
python-docs-2.7.5
/
html
/
_sources
/
c-api
.. highlightlang:: c .. _weakrefobjects: Weak Reference Objects ---------------------- Python supports *weak references* as first-class objects. There are two specific object types which directly implement weak references. The first is a simple reference object, and the second acts as a proxy for the original object as much as it can. .. c:function:: int PyWeakref_Check(ob) Return true if *ob* is either a reference or proxy object. .. versionadded:: 2.2 .. c:function:: int PyWeakref_CheckRef(ob) Return true if *ob* is a reference object. .. versionadded:: 2.2 .. c:function:: int PyWeakref_CheckProxy(ob) Return true if *ob* is a proxy object. .. versionadded:: 2.2 .. c:function:: PyObject* PyWeakref_NewRef(PyObject *ob, PyObject *callback) Return a weak reference object for the object *ob*. This will always return a new reference, but is not guaranteed to create a new object; an existing reference object may be returned. The second parameter, *callback*, can be a callable object that receives notification when *ob* is garbage collected; it should accept a single parameter, which will be the weak reference object itself. *callback* may also be ``None`` or *NULL*. If *ob* is not a weakly-referencable object, or if *callback* is not callable, ``None``, or *NULL*, this will return *NULL* and raise :exc:`TypeError`. .. versionadded:: 2.2 .. c:function:: PyObject* PyWeakref_NewProxy(PyObject *ob, PyObject *callback) Return a weak reference proxy object for the object *ob*. This will always return a new reference, but is not guaranteed to create a new object; an existing proxy object may be returned. The second parameter, *callback*, can be a callable object that receives notification when *ob* is garbage collected; it should accept a single parameter, which will be the weak reference object itself. *callback* may also be ``None`` or *NULL*. If *ob* is not a weakly-referencable object, or if *callback* is not callable, ``None``, or *NULL*, this will return *NULL* and raise :exc:`TypeError`. .. versionadded:: 2.2 .. c:function:: PyObject* PyWeakref_GetObject(PyObject *ref) Return the referenced object from a weak reference, *ref*. If the referent is no longer live, returns :const:`Py_None`. .. versionadded:: 2.2 .. warning:: This function returns a **borrowed reference** to the referenced object. This means that you should always call :c:func:`Py_INCREF` on the object except if you know that it cannot be destroyed while you are still using it. .. c:function:: PyObject* PyWeakref_GET_OBJECT(PyObject *ref) Similar to :c:func:`PyWeakref_GetObject`, but implemented as a macro that does no error checking. .. versionadded:: 2.2
[-] string.txt
[edit]
[-] long.txt
[edit]
[-] tuple.txt
[edit]
[-] type.txt
[edit]
[-] utilities.txt
[edit]
[-] module.txt
[edit]
[-] reflection.txt
[edit]
[-] list.txt
[edit]
[-] buffer.txt
[edit]
[-] none.txt
[edit]
[-] datetime.txt
[edit]
[-] gcsupport.txt
[edit]
[-] cobject.txt
[edit]
[-] veryhigh.txt
[edit]
[-] init.txt
[edit]
[+]
..
[-] index.txt
[edit]
[-] refcounting.txt
[edit]
[-] gen.txt
[edit]
[-] dict.txt
[edit]
[-] sequence.txt
[edit]
[-] weakref.txt
[edit]
[-] set.txt
[edit]
[-] int.txt
[edit]
[-] class.txt
[edit]
[-] float.txt
[edit]
[-] objimpl.txt
[edit]
[-] mapping.txt
[edit]
[-] abstract.txt
[edit]
[-] import.txt
[edit]
[-] method.txt
[edit]
[-] complex.txt
[edit]
[-] concrete.txt
[edit]
[-] iter.txt
[edit]
[-] function.txt
[edit]
[-] iterator.txt
[edit]
[-] unicode.txt
[edit]
[-] file.txt
[edit]
[-] conversion.txt
[edit]
[-] memory.txt
[edit]
[-] bool.txt
[edit]
[-] object.txt
[edit]
[-] bytearray.txt
[edit]
[-] marshal.txt
[edit]
[-] slice.txt
[edit]
[-] descriptor.txt
[edit]
[-] arg.txt
[edit]
[-] codec.txt
[edit]
[-] code.txt
[edit]
[-] cell.txt
[edit]
[-] number.txt
[edit]
[-] objbuffer.txt
[edit]
[-] sys.txt
[edit]
[-] typeobj.txt
[edit]
[-] exceptions.txt
[edit]
[-] intro.txt
[edit]
[-] allocation.txt
[edit]
[-] structures.txt
[edit]
[-] capsule.txt
[edit]