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