[Python-Dev] Switch statement

Phillip J. Eby pje at telecommunity.com
Wed Jun 21 19:05:19 CEST 2006


At 06:41 PM 6/21/2006 +0200, Fredrik Lundh wrote:
>Guido van Rossum wrote:
>
> > (Note how I've switched to the switch-for-efficiency camp, since it
> > seems better to have clear semantics and a clear reason for the syntax
> > to be different from if/elif chains.)
>
>if you're now in the efficiency camp, why not just solve this on the
>code generator level ?  given
>
>      var = some expression
>      if var == constant:
>          ...
>      elif var == constant:
>          ...
>
>let the compiler use a dispatch table, if it can and wants to.

Two reasons:

1. Having special syntax is an assertion that 'var' will be usable as a 
dictionary key.  Without this assertion, the generated code would need to 
trap hashing failure.

2. Having special syntax is likewise an assertion that the 'constants' will 
remain constant, if they're symbolic constants like:

FOO = "foo"




More information about the Python-Dev mailing list