ジェネレータオブジェクト¶
ジェネレータオブジェクトは、 Python がジェネレータイテレータを実装するのに使っているオブジェクトです。ジェネレータオブジェクトは通常、 PyGen_New() や PyGen_NewWithQualName() の明示的な呼び出しではなく、値を yield する関数のイテレーションにより生成されます。
-
type PyGenObject¶
ジェネレータオブジェクトに使われている C 構造体です。
-
PyTypeObject PyGen_Type¶
ジェネレータオブジェクトに対応する型オブジェクトです。
-
int PyGen_CheckExact(PyObject *ob)¶
ob の型が
PyGen_Typeなら真を返します。 ob はNULLであってはなりません。 この関数は常に成功します。
-
PyObject *PyGen_New(PyFrameObject *frame)¶
- 戻り値: 新しい参照。
frame オブジェクトに基づく新しいジェネレータオブジェクトを作成して返します。 この関数は、エラー時も含めて frame への参照を 盗みます。 引数は
NULLであってはなりません。
-
PyObject *PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)¶
- 戻り値: 新しい参照。
frame オブジェクトに基づく新しいジェネレータオブジェクトを作成し、
__name__と__qualname__をそれぞれ name と qualname に設定して返します。 この関数は、エラー時も含めて frame への参照を 盗みます。 frame 引数はNULLであってはなりません。
-
PyCodeObject *PyGen_GetCode(PyGenObject *gen)¶
gen がラップするコードオブジェクトへの新しい 強参照 を返します。 この関数は常に成功します。
非同期ジェネレータオブジェクト¶
参考
-
PyTypeObject PyAsyncGen_Type¶
非同期ジェネレータオブジェクトに対応する型オブジェクトです。 Python レイヤでは
types.AsyncGeneratorTypeとして利用できます。Added in version 3.6.
-
PyObject *PyAsyncGen_New(PyFrameObject *frame, PyObject *name, PyObject *qualname)¶
frame をラップする新しい非同期ジェネレータを作成し、
__name__と__qualname__をそれぞれ name と qualname に設定します。 この関数は、エラー時も含めて frame への参照を 盗みます。 frame はNULLであってはなりません。成功すると、新しい非同期ジェネレータへの 強参照 を返します。 失敗すると、例外を設定して
NULLを返します。Added in version 3.6.
非推奨の API¶
-
PyAsyncGenASend_CheckExact(op)¶
この API は誤って Python の C API に含められたものです。
網羅性のためだけにここに記載しています。 この API は使わないでください。
バージョン 3.14 で ソフト非推奨 <Soft deprecated>.