Two-Dimensional Expression Layout

cs at zip.com.au cs at zip.com.au
Sat Aug 20 18:34:45 EDT 2016


On 19Aug2016 16:11, Lawrence D’Oliveiro <lawrencedo99 at gmail.com> wrote:
>On Saturday, August 20, 2016 at 10:38:34 AM UTC+12, Chris Angelico wrote:
>> On Sat, Aug 20, 2016 at 8:31 AM, Lawrence D’Oliveiro wrote:
>>> There is no short-cut evaluation when constructing tuples and lists.
>>
>> I'm not sure how that would make difference in these examples. The
>> three parts are independent - the one place where short-circuiting is
>> important is indeed short-circuited.
>
>That often is not the case, e.g. <https://github.com/ldo/qahirah/blob/master/qahirah.py>:
>
>    assert \
>        (
>            len(self.points) == 0
>        or
>                not self.points[0].off
>            and
>                (closed or not self.points[-1].off)
>        )

Aye, but beware that the expression is actually correct for the indentation.  
Compare:

   assert \
       (
           len(self.points) == 0
       and
               not self.points[0].off
           or
               (closed or not self.points[-1].off)

where the precedence causes the layout to mislead.

I'm not arguing against indented spread out layout here, I use it myself, but 
just mentioning that the human eye will tend to take the visual layout over a 
strict parse. So care is needed, as in all programming.

Cheers,
Cameron Simpson <cs at zip.com.au>



More information about the Python-list mailing list