On Fri, Mar 6, 2009 at 11:08 AM, Serdar Tumgoren <zstumgo...@gmail.com> wrote:
> Hi all,
>
> I've managed to think myself in circles and was hoping someone could help
> clarify the nature of the "id" function and references in general.
>
> I initially got confused while dealing with file objects, so I'll stick with
> that example.  My question, based on the below tests in the ipython
> interpreter, is whether the id function is returning the location of the
> file object or the reference to that object (in this case, "f"). My hunch is
> that it's the memory location of the file object, but then I started
> thinking that everything in python is an object, so shouldn't there be a
> memory location for the variable name "f" as well? And are the below memory
> locations for that reference rather than the object itself?

In CPython, at least, the id is the memory location of the object.
Variables are generally stored as dictionary entries. The string 'f'
does have an address, but that is not what id(f) refers to. Python
doesn't make any guarantees about this, it is an implementation
detail. The docs for id() say,

Return the ``identity'' of an object. This is an integer (or long
integer) which is guaranteed to be unique and constant for this object
during its lifetime. Two objects with non-overlapping lifetimes may
have the same id() value. (Implementation note: this is the address of
the object.)

Kent
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to