[Python-Dev] Switch statement

Delaney, Timothy (Tim) tdelaney at avaya.com
Mon Jun 19 23:40:10 CEST 2006


Guido van Rossum wrote:
> I wonder if there should be two default clauses, or some other
> syntactic way to indicate whether we expect all x to be hashable?

 switch expr:
 case 1:
 statements
 case 2:
 statements
 else:
 statements
 except KeyError:
 statements
 finally:
 statements
 switch expr:
 case 1:
 statements
 case 2:
 statements
 else:
 statements
 except KeyError:
 statements
 finally:
 statements
:)

Seriously, I think I'd rather be explicit and just have KeyError
propagate. If someone is expecting occasional unhashable values, they
can just wrap it in try/except.
 try:
 switch expr:
 case 1:
 statements
 case 2:
 statements
 else:
 statements
 except KeyError:
 statements
 finally:
 statements
The first syntax though does have the advantage that it could catch only
KeyErrors raised from the switch statement. That could be easily handled
by a separate SwitchKeyError exception (inheriting from KeyError).
Tim Delaney


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /