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 Pythoncode
.
-
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, usePyFrame_GetLineNumber()
instead.For efficiently iterating over the line numbers in a code object, use the API described in PEP 626.