Continuing indentation

Steven D'Aprano steve at pearwood.info
Wed Mar 2 21:22:01 EST 2016


On Thu, 3 Mar 2016 11:02 am, Carl Meyer wrote:

> On 03/02/2016 04:54 PM, Chris Angelico wrote:
>> On Thu, Mar 3, 2016 at 10:46 AM,  <codewizard at gmail.com> wrote:
>>> On Wednesday, March 2, 2016 at 3:44:07 PM UTC-5, Skip Montanaro wrote:
>>>>
>>>>     if (some_condition and
>>>>         some_other_condition and
>>>>         some_final_condition):
>>>>         play_bingo()
>>>
>>> How about:
>>>
>>>   continue_playing = (
>>>       some_condition and
>>>       some_other_condition and
>>>       some_final_condition
>>>   )
>>>
>>>   if continue_playing:
>>>       play_bingo()
>>>
>>> or:
>>>
>>>   play_conditions = [
>>>       some_condition,
>>>       some_other_condition,
>>>       some_final_condition,
>>>   ]
>>>
>>>   if all(play_conditions):
>>>       play_bingo()
>> 
>> Those feel like warping your code around the letter of the law,
>> without really improving anything.
> 
> Not at all! Taking a series of boolean-joined conditions and giving the
> combined condition a single name is often a major improvement in
> readability. Not primarily for code-layout reasons, but because it
> forces you to name the concept (e.g. "continue_playing" here.)

If you only use "continue_playing" in exactly one place, then it doesn't
deserve a name. You wouldn't write:

the_index = x + 1
value = sequence[the_index]

would you? 

> Names are important!

Too important to waste on every single-use expression.




-- 
Steven




More information about the Python-list mailing list