
On 12/31/19 1:20 AM, iman.h.a.khamse@gmail.com wrote:
Hi I think the following syntax's:
if foo in foobar or bar in foobar or baz in foobar: pass if foo in foobar and bar in foobar and baz in foobar: pass
can be more readable and shorter if written as:
if foo or bar or baz in foobar: pass if foo and bar and baz in foobar: pass
maybe for "is" instead of:
if foobar is foo or foobar is bar or foobar is baz: pass
if foobar is foo or bar or baz: pass
now the recommended syntax translate to this: (I think so)
if foo (IS NOT '0' or None or empty) or bar (IS NOT '0' or None or empty) or baz in foobar
so probably we must introduce a new type of 'or' (I recommend the CAPITAL "OR","AND") so this:
if foo OR bar OR baz in foobar: pass
translates to this:
if foo in foobar or bar in foobar or baz in foobar: pass
IF I were to change the syntax ( which I don't propose), I believe the construct like foo or bar or baz in foobar to give you issues parsing. An alternative which is, in my opinion, more readable would be if any(foo, bar, baz) in foobar (and the alternative if all(foo, bar, baz) in foobar). To do this any and all could make a specially tagged tupl which interacts with operators like 'in' in a special way where it applies each of its members and or/ands the results. It may even be possible to do this with the existing Python by defining a suitable class any and all with an appropriate constructor and implementing its own version of things like in. (not sure if we can override 'is') -- Richard Damon