The reason why Python doresn't have a case statement is simply because Guido didn't put one in. Why he didn't I don't know, you'd need to ask him. But I guess that since case stateents are simply syntactic sugar (well nearly), that providing one might have seemed like going against Python's ethos of explicit being better than implicit.
The reason why it doesn't have C style case statements is more likely to be due to the fact that C case statements are notoriously bug prone. Pascal or VB style case statements might have been acceptable... But ultimately they are only a minor performance tweak over an if/elif chain saving the cost of one boolean comparison and possibly an assembler jump per case. Long case constructs are better done as dispatch tables - and yes you have to wrap them in functions, but thats definitely a good thing and should be done in well written case statements too IMHO. Short case statements are usually fine in if/elif chains. And type based case statements should be eliminated by using objects and polymorphism. But see a long thread in the archives between Jeff Smith (advocating cases) and myself playing devils advocate for the status quo (about a year ago?) for much more discussion :-) HTH, Alan G. _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
