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. <[email protected]> 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 -- [email protected] > To unsubscribe send an email to [email protected] > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/[email protected]/message/5UKDW3NVGTM3E4TORZN42G6S4ZX42TZD/ > Code of Conduct: http://python.org/psf/codeofconduct/ _______________________________________________ Python-ideas mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/C5Q73RJXJWSLS3T5A6VD5HZ33Y72OFIT/ Code of Conduct: http://python.org/psf/codeofconduct/
