Nota
¡Ayúdanos a traducir la documentación oficial de Python al Español! Puedes encontrar más información en Como contribuir. Ayuda a acercar Python a más personas de habla hispana.
Objetos Código¶
Los objetos código son un detalle de bajo nivel de la implementación de CPython. Cada uno representa un fragmento de código ejecutable que aún no se ha vinculado a una función.
-
type
PyCodeObject
¶ La estructura en C de los objetos utilizados para describir objetos código. Los campos de este tipo están sujetos a cambios en cualquier momento.
-
PyTypeObject
PyCode_Type
¶ Esta es una instancia de
PyTypeObject
que representa el tipo Pythoncode
.
-
int
PyCode_Check
(PyObject *co)¶ Retorna verdadero si co es un objeto
code
. Esta función siempre finaliza con éxito.
-
int
PyCode_GetNumFree
(PyCodeObject *co)¶ Retorna el número de variables libres en 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.
Retorna un nuevo objeto de código. Si necesita un objeto de código ficticio para crear un marco (frame), use
PyCode_NewEmpty()
en su lugar. LlamandoPyCode_New()
directamente puede enlazarlo a una versión precisa de Python ya que la definición del código de bytes cambia a menudo.
-
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.
Similar a
PyCode_New()
, pero con un «posonlyargcount» adicional para argumentos solo posicionales.Nuevo en la versión 3.8.
-
PyCodeObject *
PyCode_NewEmpty
(const char *filename, const char *funcname, int firstlineno)¶ - Return value: New reference.
Retorna un nuevo objeto de código vacío con el nombre de archivo especificado, el nombre de la función y el número de la primera línea. Es ilegal utilizar
exec()
oeval()
en el objeto de código resultante.
-
int
PyCode_Addr2Line
(PyCodeObject *co, int byte_offset)¶ Retorna el número de línea de la instrucción que se produce en o antes de
byte_offset
y finaliza después. Si solo necesita el número de línea de un marco, usePyFrame_GetLineNumber()
en su lugar.Para iterar de manera eficiente sobre los números de línea en un objeto de código, use la API descrita en PEP 626.