Objek Kode

Objek kode merupakan detail tingkat rendah dari implementasi CPython. Masing-masing mewakili sekumpulan kode yang dapat dieksekusi dimana belum terikat ke fungsi.

PyCodeObject

Struktur C dari objek yang digunakan untuk menggambarkan objek kode. Jenis dari tipe ini dapat berubah sewaktu-waktu.

PyTypeObject PyCode_Type

Ini adalah contoh dari PyTypeObject mewakili tipe Python code.

int PyCode_Check(PyObject *co)

Return true if co is a code object.

int PyCode_GetNumFree(PyCodeObject *co)

Mengembalikan jumlah variabel bebas dalam co.

PyCodeObject* PyCode_New(int argcount, int kwonlyargcount, 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)
Return value: New reference.

Mengembalikan objek kode baru. Jika Anda memerlukan objek kode dummy untuk membuat bingkai, gunakan :c: func:PyCode_NewEmpty sebagai gantinya. Memanggil PyCode_New() secara langsung dapat mengikat Anda ke versi Python yang tepat karena seringnya perubahan definisi bytecode.

PyCodeObject* PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount, 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)
Return value: New reference.

Mirip dengan PyCode_New(), namun dengan tambahan "posonlyargcount" untuk argumen dengan posisi .

Baru pada versi 3.8.

PyCodeObject* PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)
Return value: New reference.

Mengembalikan objek kode kosong baru dengan nama file yang ditentukan, nama fungsi, dan nomor baris pertama. Adalah ilegal untuk exec() atau :func:` eval` menghasilkan objek kode.