In article <[EMAIL PROTECTED]>, Jeff Schwab <[EMAIL PROTECTED]> wrote: >Aahz wrote: >> In article <[EMAIL PROTECTED]>, >> Jeff Schwab <[EMAIL PROTECTED]> wrote: >>> [EMAIL PROTECTED] wrote: >>>> >>>> There's nothing like a variable "storing" anything in Python. All you >>>> have are names to (references to) objects binding in a namespace. Now >>>> the fact is that some types are mutable and other are not. In your >>>> above example, the augmented assignment does *not* rebind a, but >>>> invoke a.extend(). With integers, it would have rebind a. So while >>>> your observation is exact, your interpretation is wrong !-) >>> Thank you for the clarification. For some reason, I had it in my head >>> that ints were packed directly into the C structures that represent >>> Python variables, in the same (union?) member that otherwise would store >>> a pointer. >> >> Notice very very carefully that Bruno is not using "variable". Many >> expert Python programmers strongly prefer to talk about "names" instead >> of "variables" (especially when explaining the Python object model) >> precisely because using "variable" leads to incorrect expectations. >> >> http://starship.python.net/crew/mwh/hacks/objectthink.html > >So what is the "variable?" Or is Python the first HLL I've ever heard >of that didn't have variables?
Whether Python has "variables" depends on your perspective. Python certainly does *not* have variables with anything like the semantics of C/C++ variables. For that reason, it's often convenient to shift the vocabulary to avoid misunderstading. However, the vast majority of Python programmers do use "variable" in casual conversation (I certainly do); it's only when trying to discuss the Python object model that there's a strong tendency to switch to using "names". -- Aahz ([EMAIL PROTECTED]) <*> http://www.pythoncraft.com/ "All problems in computer science can be solved by another level of indirection." --Butler Lampson -- http://mail.python.org/mailman/listinfo/python-list