[pyar] [video] En Python tenemos nombres, no variables.

Claudio Freire klaussfreire en gmail.com
Vie Jun 6 16:39:30 ART 2014


2014-06-06 12:32 GMT-03:00 Emiliano Dalla Verde Marcozzi
<edvm en fedoraproject.org>:
> El 6 de junio de 2014, 12:26, Roberto Alsina <ralsina en netmanagers.com.ar>
> escribió:
>>
>> On 06/06/14 12:09, Emiliano Dalla Verde Marcozzi wrote:
>>
>>
>> Otra pregunta, en Python como puedo obtener la posición en memoria donde
>> se guarda el 'nombre' ?
>>
>>
>> Don't Do That (tm)
>>
>> En CPython... id(objeto) (pero es un detalle de implementacion)
>
>
> Gracias por la respuesta Roberto, pero con id() no veo pueda obtener la
> posición en memoria del nombre, ej:
>
> In [1]: def foo():
>    ...:     pass
>
> In [2]: id(foo)
> Out[2]: 21668760
>
> In [3]: a = foo
>
> In [4]: id(a)
> Out[4]: 21668760
>
> al bindear el nombre 'a' a foo, id(a) me retorna el mismo id que foo (porque
> apunta a foo) pero no me dice
> donde está / existe 'a'. Me surge esta duda porque mencionaron que los
> 'nombres' en algún lado se guardan,
> y algún lugar en la memoria deben ocupar.
> Saludos y gracias!


Depende del contexto.

En globales, es algún lugar dentro de globals() (exactamente dónde es
difícil de decir).

En locales, es más preciso, pero es difícil de acceder desde python.
El nombre está en la lista de locales de la función, es sizeof(void*)
* posición + header + frameptr.

Realmente no se me ocurre en qué universo podrías querer saber eso igual :p


More information about the pyar mailing list