Steven> I've never understood why something like:
Steven> if x = 5:
Steven> do_this
Steven> elif x = 6:
Steven> do_that
Steven> else:
Steven> do_something_else
Steven> is supposed to be "bad", but
Steven> case of:
Steven> x = 5:
Steven> do_this
Steven> x = 6:
Steven> do_that
Steven> otherwise:
Steven> do_something_else
Steven> is supposed to be "good".
...
Steven> Arguably, a case statement *might* allow the compiler to
Steven> optimize the code, maybe, sometimes.
If the case values are constants known to the compiler, it can generate O(1)
code to take the correct branch. (In fact, that could be done by the
compiler for if statements such as in your example today. It just isn't.)
It is precisely this behavior that is desired in many situations. See PEP
275 for details:
http://www.python.org/peps/pep-0275.html
Skip
--
http://mail.python.org/mailman/listinfo/python-list