On Sat, 25 Jul 2009 04:45:48 -0700, Carl Banks wrote: > On Jul 24, 8:14 am, Ben Finney <ben+pyt...@benfinney.id.au> wrote: >> Hrvoje Niksic <hnik...@xemacs.org> writes: >> > The term "variable" is used in the Python language reference and >> > elsewhere >> >> Yes. It should also be abundantly clear from the constant stream of >> confused newbies on this point that its usage of that term is different >> to what many expect from usage elsewhere. > > Personally, I haven't noticed a constant stream, just a few here and > there. > > I expect that someone used to C variables will expect Python variables > to behave the same way even if you call them something different, so > what really is the point?
From time to time we get newbies to Python assuming that len(list) is O(N), because the lists they learned about in Comp Sci 101 (or Lisp) are linked lists and traversing a linked list to count the items is O(N). Do you believe that if Python lists were called "arrays", or "waskilators", they would make the same mistake? [Generalisation] C programmers have a mental model for how "variables" behave. They have no such mental model for how "objects bound to names" behave, and so they are less likely to jump to conclusions about the behaviour of name- bindings. So I think you are mostly wrong. However, only mostly -- human beings are generalisers par excellence, or rather, *over*-generalisers par excellence. Experienced coders are likely to rapidly realise that name-binding is very similar to the C variable model, and some percentage of them will over-generalise to assume that name-binding is the same as the C model. But if they do, at least that will be their fault for jumping to conclusions, not our fault for misleading them. -- Steven -- http://mail.python.org/mailman/listinfo/python-list