Code Objects

Code objects are a low-level detail of the CPython implementation.Each one represents a chunk of executable code that hasn’t yet beenbound into a function.

PyCodeObject

The C structure of the objects used to describe code objects. Thefields of this type are subject to change at any time.

PyTypeObjectPyCode_Type

This is an instance ofPyTypeObject representing the Pythoncode type.

intPyCode_Check(PyObject *co)

Return true ifco is acode object.

intPyCode_GetNumFree(PyCodeObject *co)

Return the number of free variables inco.

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.

Return a new code object. If you need a dummy code object tocreate a frame, usePyCode_NewEmpty() instead. CallingPyCode_New() directly can bind you to a precise Pythonversion since the definition of the bytecode changes often.

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

Return a new empty code object with the specified filename,function name, and first line number. It is illegal toexec() oreval() the resulting code object.