Mark Wooding wrote:

Derek Martin <c...@pizzashack.org> wrote:

I think I have though, not that it matters, since that was never
really my point.  Python's assignment model requires more explanation
than the traditional one, simply to state what it does.  That alone is
evidence (but not proof).

Hmm.  Actually, it's not the assignment model which is strange at all.
It's the data model.  What does an expression like

  [1, 2, 3]

denote?  Is it the list itself, or a /reference/ to the list?  If you
answer the first, you'll want Tcl/C/Fortran semantics.  If you answer
the second, you'll want Lisp/Python/Javascript semantics.  If you answer
`it depends', you'll want to be confused.

Well said!

You can easily see that assignment in Python is perfectly ordinary, by comparing it to languages that have both values and references (such as C++, Java, or REALbasic). Those languages have only one assignment model, that operates on both values and references just fine.

Python has only references, and I think it's for this reason that some people here try to pretend that it doesn't have them at all, thus leading them to weird explanations of strange assignment and argument-passing behavior.

Python decided that all values are passed around as and manipulated
through references.  (There are no locatives: references are not values,
and you can't have a reference to a reference.)

Also very clearly put.

If you don't mind, I may crib some of your verbage for <http://www.strout.net/info/coding/valref/>, as it may be clearer than my own.

Best,
- Joe



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to