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