ben+python at benfinney.id.au
Tue Feb 28 12:36:56 CET 2012
Steven D'Aprano <steve+comp.lang.python at pearwood.info> writes:
> On Sun, 26 Feb 2012 19:47:49 +1100, Ben Finney wrote:
> >> An integer variable is a variable holding an integer. A string variable
> >> is a variable holding a string. A list variable is a variable holding a
> >> list.
> > And Python has none of those. Its references don't “hold” anything.
> Ah, but they do. Following the name binding:
> x = 1
> the name "x" now holds a reference to an int, or if you want to cut out
> one layer of indirection, the name "x" holds an int. That is to say, the
> value associated with the name "x" is an int.
Names don't hold anything. Not in natural language, and not in Python.
Which is exactly *why* the term “name” is a good one, since Python's
bindings don't hold anything either. It's a reference, not a container.
> I don't believe this is a troublesome concept.
Then you have a different concept of “name” from anything I'd expect
anyone to understand.
> > I appreciate that you think “variable” is a useful term in Python,
> > but this kind of mangling of the concept convinces me that it's not
> > worth it.
> I'm not sure that there is any mangling here. Or at least, the concept
> is only mangled if you believe that Pascal- or C-like variables (named
> memory locations) are the one true definition of "variable". I do not
> believe this.
The fact that you keep having to come back to container analogies, when
that's exactly what Python doesn't have and what differentiates it, is
why I think the term “variable” isn't helping the discussion. Not for
us, and not for newcomers to the language.
> Words vary in their meanings
Of course they do. but we don't have to let any word mean any arbitrary
thing. I reject attempts to Humpty Dumpty our way through discussions
with newcomers about Python concepts.
\ “Simplicity and elegance are unpopular because they require |
`\ hard work and discipline to achieve and education to be |
_o__) appreciated.” —Edsger W. Dijkstra |
More information about the Python-list