Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #8408
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Subject | Re: Interpreting Left to right? |
| Date | 2011-06-24 17:02 -0400 |
| References | (1 earlier) <iu1aaq$rni$1@dough.gmane.org> <4E043953.5080705@stoneleaf.us> <20110624195300.GJ6075@point.cs.wisc.edu> <4E04EFD4.6050309@stoneleaf.us> <20110624200618.GK6075@point.cs.wisc.edu> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.388.1308949343.1164.python-list@python.org> (permalink) |
On 6/24/2011 4:06 PM, Tycho Andersen wrote:
> tmp = {}
> x['huh'] = tmp # NameEror!
>
> That is, the right hand sides of assignments are evaluated before the
> left hand sides. That is (somehow?) not the case here.
You are parsing "a = b = c" as "a = (b = c)" which works in a language
in which assignment is an expression, but does not work in Python where
assignment is a statement. You have to parse it more as "(a = b) = c"
but that does not work since then the first '=' is not what it seems. It
is more like "(both a and b) = c". Perhaps best to expand "a = b = c" to
"a = c; b = c" and see the first as an abbreviation thereof -- just
delete the 'c;'.
If I have ever used this sort of multiple assignment, it has been for
simple unambiguous things like "a = b = 0".
--
Terry Jan Reedy
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: Interpreting Left to right? Terry Reedy <tjreedy@udel.edu> - 2011-06-24 17:02 -0400
csiph-web