[pyar] La función id y acceso a objetos en la memoria

Lucio Torre lucio.torre en gmail.com
Sab Ene 3 20:45:42 ART 2015


Python/bltinmodule.c:

 915 static PyObject *
 916 builtin_id(PyObject *self, PyObject *v)
 917 {
 918     return PyLong_FromVoidPtr(v);
 919 }

2602
2603 static PyMethodDef builtin_methods[] = {
[...]
2627     {"id",              builtin_id,         METH_O, id_doc},
[...]
2659 };
2660

Objects/longobject.c
 767 /* Create a new long (or int) object from a C pointer */
 768
 769 PyObject *
 770 PyLong_FromVoidPtr(void *p)
 771 {
...



2015-01-03 20:01 GMT-03:00 fisa <fisadev en gmail.com>:

> Pensando en el funcionamiento de id, me surge esta duda: al hacer id(x),
> en algún momento se accede al objeto referenciado por x?
> Es decir, se lee de memoria el área que contiene a ese objeto?
>
> Lógico que depende mucho de la implementación, pregunto por cpython.
> Y en cpython, imagino que lo más lógico sería que el pasaje de parámetros
> fuese simplemente algo como un pasaje de punteros de C, con lo que id() no
> leería de memoria al objeto, solo compararía los valores de los punteros.
>
> Pero por ahí hay algún detalle extra de implementación, que haga que se
> termine leyendo el objeto. O que sea necesario porque no compara posiciones
> de memoria sino algún otro tipo de metadato escondido en el objeto en sí
> (qué se yo, por ahí lleva un id propio de cpython por algún motivo oscuro
> del compilador).
>
> No hay un problema concreto, solo estaba pensando cómo lo haría yo, y
> ahora quiero saber cómo sucede en cpython.
>
> Saludos!
>
> --
> fisa  -  Juan Pedro Fisanotti
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150103/324c37f1/attachment.html>


More information about the pyar mailing list