Objetos Geradores

Objetos geradores são o que o Python usa para implementar iteradores geradores. Eles são normalmente criados por iteração sobre uma função que produz valores, em vez de invocar explicitamente PyGen_New() ou PyGen_NewWithQualName().

type PyGenObject

A estrutura C usada para objetos geradores.

PyTypeObject PyGen_Type

O objeto de tipo correspondendo a objetos geradores.

int PyGen_Check(PyObject *ob)

Retorna verdadeiro se ob for um objeto gerador; ob não deve ser NULL. Esta função sempre tem sucesso.

int PyGen_CheckExact(PyObject *ob)

Retorna verdadeiro se o tipo do ob é PyGen_Type; ob não deve ser NULL. Esta função sempre tem sucesso.

PyObject *PyGen_New(PyFrameObject *frame)
Retorna valor: Nova referência.

Cria e retorna um novo objeto gerador com base no objeto frame. Uma referência a quadro é roubada por esta função. O argumento não deve ser NULL.

PyObject *PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)
Retorna valor: Nova referência.

Cria e retorna um novo objeto gerador com base no objeto frame, com __name__ e __qualname__ definidos como name e qualname. Uma referência a frame é roubada por esta função. O argumento frame não deve ser NULL.

PyCodeObject *PyGen_GetCode(PyGenObject *gen)

Retorna uma nova referência forte ao objeto de código encapsulado por gen. Esta função sempre tem sucesso.

Objetos geradores assíncronos

Ver também

PEP 525

PyTypeObject PyAsyncGen_Type

O objeto de tipo correspondente aos objetos geradores assíncronos. Está disponível como types.AsyncGeneratorType na camada Python.

Adicionado na versão 3.6.

PyObject *PyAsyncGen_New(PyFrameObject *frame, PyObject *name, PyObject *qualname)

Cria um novo gerador assíncrono que encapsule frame, com __name__ e __qualname__ definidos como name e qualname. frame é apropriado por esta função e não deve ser NULL.

Em caso de sucesso, esta função retorna uma referência forte ao novo gerador assíncrono. Em caso de falha, esta função retorna NULL com uma exceção definida.

Adicionado na versão 3.6.

int PyAsyncGen_CheckExact(PyObject *op)

Retorna verdadeiro se op for um objeto gerador assíncrono, falso caso contrário. Esta função sempre tem sucesso.

Adicionado na versão 3.6.