Objek Kode
**********

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

type 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)

   Mengembalikan benar jika *co* adalah objek "code". Fungsi ini
   selalu sukses.

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.

int PyCode_Addr2Line(PyCodeObject *co, int byte_offset)

   Return the line number of the instruction that occurs on or before
   "byte_offset" and ends after it. If you just need the line number
   of a frame, use "PyFrame_GetLineNumber()" instead.

   For efficiently iterating over the line numbers in a code object,
   use the API described in PEP 626.
