Two-Dimensional Expression Layout

codewizard at gmail.com codewizard at gmail.com
Fri Aug 19 18:50:43 EDT 2016


On Friday, August 19, 2016 at 6:38:34 PM UTC-4, Chris Angelico wrote:
> On Sat, Aug 20, 2016 at 8:31 AM, Lawrence D’Oliveiro
> <lawrencedo99 at gmail.com> wrote:
> > On Saturday, August 20, 2016 at 9:56:05 AM UTC+12, codew... at gmail.com wrote:
> >>
> >> On Friday, August 19, 2016 at 5:30:22 PM UTC-4, Lawrence D’Oliveiro wrote:
> >>
> >>> On Saturday, August 20, 2016 at 7:52:09 AM UTC+12, codew... at gmail.com
> >>> wrote:
> >>>>     if any([
> >>>>         not isinstance(src, Image),
> >>>>         mask != None and not isinstance(mask, Image),
> >>>>         not isinstance(dest, Image),
> >>>>     ]):
> >>>>         raise TypeError("image args must be Image objects")
> >>>>
> >>>> Or equivalently:
> >>>>
> >>>>     if not all([
> >>>>         isinstance(src, Image),
> >>>>         mask is None or isinstance(mask, Image),
> >>>>         isinstance(dest, Image),
> >>>>     ]):
> >>>>         raise TypeError("image args must be Image objects")
> >>>
> >>> Using “all” or “any” in this sort of situation may not be such a good
> >>> idea.
> >>
> >> Would you care to elaborate?
> >
> > 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.
> 
> ChrisA

Agreed. Besides, just because this technique has limitations, it's still useful for me to improve readability.



More information about the Python-list mailing list