For review: PEP 308 - If-then-else expression

Michele Simionato mis6 at pitt.edu
Sat Feb 8 18:51:08 EST 2003


"Sean Ross" <sross at connectmail.carleton.ca> wrote in message news:<mid1a.6921$Zt4.1230197 at news20.bellglobal.com>...
> From updated PEP308:
> 
> > Another variant proposes to use 'when' instead of 'if':
> >
> >        <expression1> when <condition> else <expression2>
> >
> >    I don't see the advantage of 'when' over 'if'; it adds a new
> >    keyword which is a major extra hurdle to introduce this.  I think
> >    that using a different keyword suggests that the semantics are
> >    different than those of an 'if' statement; but they really aren't
> >    (only the syntax is different).
> 
> It would appear that adding a new keyword is a problem: "major extra
> hurdle", to be precise. There _really_ aren't any semantic differences, per
> se. I just thought it would help distinguish between if expressions and if
> statements and it would eliminate the possibility of
>     if x if C else y:
>         pass
> But, it looks like     x if C else y   will cause fewer problems to
> implement, and besides its not that difficult to tell the difference between
>    if C:
>        x
>    else:
>        y
> and
>     x if C else y
> 
> And, as someone posted, you can always use
>     if (x if C else y):
>         pass
> 
> So, I think I'll just give the 'when' advocacy a rest...
> (I do still prefer it, though... ;D )
> 

I think somebody pointed out that

x when C else y

could be implemented without making "when" a reserved keyword and
I would prefer "when" to "if".

            M.




More information about the Python-list mailing list