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.