Why not allow empty code blocks?
Marko Rauhamaa
marko at pacujo.net
Sat Jul 23 09:13:58 EDT 2016
"D'Arcy J.M. Cain" <darcy at Vex.Net>:
> On Sat, 23 Jul 2016 14:13:46 +0300
> Marko Rauhamaa <marko at pacujo.net> wrote:
>> I don't see an ambiguity: obviously the print call takes place after
>> finishing the loop.
>
> It's ambiguous to the reader what was actually meant. Forcing a "pass"
> there shows the reader that the empty block was not a mistake.
Just let the syntax speak for itself. The code means what the language
definition says it means.
>> I wonder if there is any true case of ambiguity. I guess this is all
>> about an enforced aesthetic principle: GvR doesn't like the looks of
>> an empty block.
>
> I don't think that he would be alone.
Then just appeal to that subjective preference instead of some objective
necessity.
BTW, the standard shell requires a dummy statement in a block even
though the block boundaries are clearly marked:
while not quit; do
done
is a syntax error. This works:
while not quit; do
:
done
> If you allow empty blocks and you use it I hope that you would add a
> comment so that the reader knows that you meant it.
Once you learn the idioms of a language, you don't need to comment the
obvious.
> for x in sequence: # this is an empty block
>
> Is that better than "pass"?
Er, in that hypothetical world, the right answer would be simply:
for x in sequence:
Note that I'm not arguing for the removal of "pass." I'm just saying
it isn't strictly necessary.
Marko
More information about the Python-list
mailing list