PEP 308: Pep Update
Damien Morton
newsgroups1 at bitfurnace.com
Thu Feb 13 04:44:44 EST 2003
Id like to propose the desireability of any proposed conditional selection
expression syntax to handle multiple chained condition/value pairs.
For the leading options offered, chaining them looks like this:
STRICT INTERPRETATION
(if <cond1>: <expr1> else: (if <cond2>: <expr2> else: <expr3>))
(<cond1> then <expr1> else (<cond2> then <expr2> else <expr3>))
(<cond1> ? <expr1> : (<cond2> ? <expr2> : <expr3>))
RELAXED INTERPRETATION
(if <cond1>: <expr1> elif: <cond2>: <expr2> else: <expr3>)
(<cond1> then <expr1> elif <cond2> then <expr2> else <expr3>)
(<cond1> ? <expr1> : <cond2> ? <expr2> : <expr3>)
Id also like to mention my own proposal ("generalising the ternary
operator"):
(<cond1> ? <expr1> , <cond2> ? <expr2> , <expr3>)
"Raymond Hettinger" <vze4rx4y at verizon.net> wrote in message
news:6qH2a.32424$F25.27498 at nwrddc02.gnilink.net...
> Amended the PEP to reflect some convergence on the newsgroup:
>
> * Listed the downsides of the current proposal.
>
> * Listed why '<cond> then <expr1> else <expr2>' is starting to
> be preferred over '<cond> and <expr1> or <expr2>'.
>
> * After BDFL comments, I withdrew my c??a||b syntax
> and deleted the rejected c?a!b syntax. The remaining
> punctuation based contender is c?a:b.
>
> * After BDFL rejection of non-short-circuiting options,
> advocacy dropped sharply. Removed it from the list of
> contenders.
>
> The leading options on the table are:
>
> * (if <cond>: <expr1> else: >expr2>)
> * <cond> then <expr1> else <expr2>
> * <cond> ? <expr1> : <expr2>
> * no change
>
>
> Raymond Hettinger
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
More information about the Python-list
mailing list