Ifs and assignments

Mark Lawrence breamoreboy at yahoo.co.uk
Thu Jan 2 20:20:51 EST 2014


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?

-- 
My fellow Pythonistas, ask not what our language can do for you, ask 
what you can do for our language.

Mark Lawrence




More information about the Python-list mailing list