# 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.