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 Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com