The “does Python have variables?” debate

Ethan Furman ethan at stoneleaf.us
Thu May 8 19:09:43 EDT 2014


On 05/08/2014 07:03 AM, Marko Rauhamaa wrote:
> Ethan Furman <ethan at stoneleaf.us>:
>> On 05/08/2014 05:41 AM, Roy Smith wrote:
>>>
>>> For those people, talking about variables as a container to hold a
>>> value is the right level of abstraction.
>>
>> Teaching someone that Python variables are containers is a massive fail.
>
> But that's what they are.

No, it's not.


> We are really debating on the suitability of a metaphor.

Exactly.  And the "a variable is a box that holds the value" is a great metaphor for languages that assign a name to a 
fixed location -- languages such as Pascal, Basic, FoxPro, and C.  In these languages when you say `a = b` you now have 
*two* copies of the data (at least for the most part); in Python (and similar languages) you have two *names* for one 
copy of the data.


> Or maybe we can think of Python's data model as a city with structures
> of different sizes and shapes. A variable is a container that holds the
> address of a structure...

If that helps as a stepping stone to a true model, fine; but if that's the final destination of your understanding then 
you don't truly understand Python's data model.

--
~Ethan~



More information about the Python-list mailing list