
Could you give an example of some real code that would be improved by this construct?
On 21 Dec 2019, at 17:42, Soni L. <fakedme+py@gmail.com> wrote:
I'd like to see the ability to do:
if x: 1 and if y: 2 or if z: 3
The truth table for these would be:
x | y | z | result 0 | _ | 0 | (none) 0 | _ | 1 | 3 1 | 0 | _ | 1,3 1 | 1 | _ | 1,2,3
and each statement is evaluated once, when encountered. (as such, y and z may not be evaluated at all, if their evaluation is not necessary to determine the outcome.)
This enables the usage of fallthrough - "or if" is a fallthrough case, and the "or" in it is because its body gets evaluated either if the parent if's body got evaluated, *or* if the orif expression is truthy.
"and if" is only suggested here for the sake of analogy/consistency/something. we have "and" and "or" and it'd be kinda weird to have "or if" without an "and if". it's equivalent to having a nested "if" at the very end of the "if" body. (only runs if the parent body ran *and* the expression is truthy.)
also, I'm sure some of you will argue that the truth table should look more like this instead:
x | y | z | result 0 | _ | 0 | (none) 0 | _ | 1 | 3 1 | 0 | 0 | 1 1 | 0 | 1 | 1,3 1 | 1 | _ | 1,2,3
and I say, no it shouldn't. if it were to do this, you'd have a hard time defining the semantics of elif and else for this. (just try it, it'll make your head spin.) _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/5UKDW3... Code of Conduct: http://python.org/psf/codeofconduct/