Objetos de Referência Fraca

Python suporta * referências fracas * como objetos de primeira classe. Existem dois tipos de objetos específicos que implementam diretamente referências fracas. O primeiro é um objeto de referência simples, e o segundo atua como um proxy para o objeto original tanto quanto ele pode.

int PyWeakref_Check(ob)

Retornar verdadeiro se * ob * for um objeto de referência ou proxy.

Novo na versão 2.2.

int PyWeakref_CheckRef(ob)

Retornar verdadeiro se * ob * for um objeto de referência.

Novo na versão 2.2.

int PyWeakref_CheckProxy(ob)

Retornar verdadeiro se * ob * for um objeto proxy.

Novo na versão 2.2.

PyObject* PyWeakref_NewRef(PyObject *ob, PyObject *callback)
Return value: New reference.

Retornar um objeto de referência fraco para o objeto * ob *. Isso sempre retornará uma nova referência, mas não é garantido para criar um novo objeto; Um objeto de referência existente pode ser retornado. O segundo parâmetro, * callback *, pode ser um objeto chamável que recebe notificação quando * ob * é lixo coletado; Ele deve aceitar um único parâmetro, que será o objeto de referência fraco propriamente dito. * Callback * também pode ser `` None`` ou * NULL *. Se * ob * não é um objeto fracamente referenciável, ou se * callback * não for chamado, `` None``, ou * NULL *, isso retornará * NULL * e levará: exc: TypeError.

Novo na versão 2.2.

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

Devolva um objeto proxy de referência fraco para o objeto * ob *. Isso sempre retornará uma nova referência, mas não é garantido para criar um novo objeto; Um objeto proxy existente pode ser retornado. O segundo parâmetro, * callback *, pode ser um objeto chamável que recebe notificação quando * ob * é lixo coletado; Ele deve aceitar um único parâmetro, que será o objeto de referência fraco propriamente dito. * Callback * também pode ser `` None`` ou * NULL *. Se * ob * não é um objeto fracamente referenciável, ou se * callback * não for chamado, `` None``, ou * NULL *, isso retornará * NULL * e levará: exc: TypeError.

Novo na versão 2.2.

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

Retornar o objeto referenciado de uma referência fraca, * ref *. Se o referente não estiver mais ao vivo, retorna: const: Py_None.

Novo na versão 2.2.

Aviso

Esta função retorna ** referência emprestada ** ao objeto referenciado. Isso significa que você deve sempre chamar: c: func: Py_INCREF no objeto, exceto se você sabe que não pode ser destruído enquanto você ainda está usando.

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

Semelhante a: c: func: PyWeakref_GetObject, mas implementado como uma macro que não verifica erros.

Novo na versão 2.2.