コードオブジェクト
コードオブジェクト(Code objects)は CPython 実装の低レベルな詳細部分です。各オブジェクトは関数に束縛されていない実行可能コードの塊を表現しています。
-
PyCodeObject
コードオブジェクトを表現するために利用されるC構造体。この型のフィールドは何時でも変更され得ます。
-
PyTypeObject PyCode_Type
Python の code 型を表現する PyTypeObject のインスタンス
-
int PyCode_Check(PyObject *co)
co が code オブジェクトのときに真を返します。
-
int PyCode_GetNumFree(PyObject *co)
co 内の自由変数(free variables)の数を返します。
-
PyCodeObject *PyCode_New(int argcount, int nlocals, int stacksize, int flags, PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames, PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name, int firstlineno, PyObject *lnotab)
新しいコードオブジェクトを返します。フレームを作成するためにダミーのコードオブジェクトが必要な場合は、代わりに
PyCode_NewEmpty() を利用してください。バイトコードは頻繁に変更されるため、 PyCode_New() を直接呼び出すと、
Python の詳細バージョンに依存してしまうことがあります。
-
int PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)
新しい空のコードオブジェクトを、指定されたファイル名、関数名、開始行番号で作成します。返されたコードオブジェクトに対しての exec や eval() は許されていません。