Nested function scope problem

Gerhard Fiedler gelists at gmail.com
Wed Aug 9 14:28:58 EDT 2006


On 2006-08-09 07:54:22, Slawomir Nowaczyk wrote:

> But I do not believe there is any "identity of a variable"
> which corresponds to "id()". Still, you used such term -- repeatedly.
> 
> I do not know what do you mean by it.

In C, the "identity" of anything is usually the memory location. Same 
location means "same thing", different location means "different thing". 
Python is a few levels above this almost hardware level. So while the 
memory thing in the end still holds for Python also, it has other means 
above that (and I'm not sure it even allows native access to the raw memory 
access). 

So if you want to know whether two Python variables refer to the same 
object, you get the id() of them; same id() means they refer to the same 
object. If you want to know whether two C variables (not necessarily 
pointers, I mean variables) refer to the same memory location, you get 
their addresses. Same address means they refer to the same memory location.

Since the identity of a variable is not a defined concept in C, it can only 
be a (subjective) approximation. I feel that the address of a variable 
reflects most closely what I would see as its identity in C. But that's 
subjective, of course.

Gerhard




More information about the Python-list mailing list