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

Lucio Torre lucio.torre en gmail.com
Sab Ene 3 20:50:40 ART 2015


Para ser mas explicitos, PyLong_FromVoidPtr ya recibe un void *, con lo que
no sabria que hacer con los datos del otro lado del puntero. Y el codigo
(que es un quilombo de ifdef por tamanios) siempre usa ese puntero
casteandolo a long, nunca lo sigue.

Lucio.

2015-01-03 20:45 GMT-03:00 Lucio Torre <lucio.torre en gmail.com>:

> 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/6805f8d1/attachment-0001.html>


More information about the pyar mailing list