Ka-Ping Yee wrote:
> Hmm, this is rather nice. I can imagine possible use cases for
>
> switch x:
> case > 3: foo(x)
> case is y: spam(x)
> case == z: eggs(x)
Part of the readability advantage of a switch over an if/elif chain is
the semantic parallelism, which would make me question mixing different
tests in the same switch. What if the operator moved into the switch
header?
switch x ==:
case 1: foo(x)
case 2, 3: bar(x)
switch x in:
case (1, 3, 5): do_odd(x)
case (2, 4, 6): do_even(x)
"switch x:" could be equivalent to "switch x ==:", for the common case.
I've also been wondering whether the 'case' keyword is really necessary?
Would any ambiguities or other parsing problems arise if you wrote:
switch x:
1: foo(x)
2: bar(x)
It is debatable whether this is more or less readable, but it seemed
like an interesting question for the language lawyers.
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com