Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #63041

Re: Ifs and assignments

From Terry Reedy <tjreedy@udel.edu>
Subject Re: Ifs and assignments
Date 2014-01-03 03:53 -0500
References <52C59FF6.5000607@allsup.co> <52C5BD90.9020609@islandtraining.com> <52C5DDA6.5090207@allsup.co> <52C60AF6.8060004@islandtraining.com> <la5390$9s8$2@ger.gmane.org>
Newsgroups comp.lang.python
Message-ID <mailman.4840.1388739251.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 1/2/2014 8:20 PM, Mark Lawrence wrote:
> On 03/01/2014 00:57, Gary Herron wrote:
>> On 01/02/2014 01:44 PM, John Allsup wrote:
>>> The point of my original post was that, whilst C's
>>>   if( x = 2 ) { do something }
>>> and
>>>   if( x == 2 ) { do something }
>>> are easy to confuse, and a source of bugs, having a construct like
>>> follows:
>>>
>>> if x == 2:
>>>     do something # what happens at present
>>> if testFunc() as x:
>>>     do something with x
>>>
>>> using the 'as' syntax that appears with 'with' and 'except', would allow
>>> for the advantages of C style assignments in conditionals but without
>>> the easy confusion, since here the syntax is significantly different
>>> between assignment and equality testing (rather than a character apart
>>> as happens with C).
>>>
>>> This occurs further down in my original post (past the point where you
>>> inserted your reply).
>>>
>>> Another post suggested a workaround by defining a 'pocket' class, for
>>> which I am grateful.
>>>
>>> John
>>
>> Sorry.  I shot off my answer before reading the whole post.  That's
>> never a good idea.
>>
>>
>> After reading to the end, I rather like your suggestion.  It works well
>> in your example, , nicely avoids the C/C++ trap, and has some
>> consistency with other parts of Python.
>>
>> Gary Herron
>>
>>
>
> I liked the look of this as well.  It ought to go to python ideas, or
> has it been suggested there in the past?

Yes, and rejected (I am quite sure). Consistency would 'demand' at least 
"while expr as target" and possibly "for i in iterable_expr as target".


-- 
Terry Jan Reedy

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Ifs and assignments Terry Reedy <tjreedy@udel.edu> - 2014-01-03 03:53 -0500

csiph-web