[Python-Dev] Switch statement

Phillip J. Eby pje at telecommunity.com
Fri Jun 16 01:49:48 CEST 2006

At 11:45 PM 6/15/2006 +0100, Nicko van Someren wrote:
>On 15 Jun 2006, at 11:37, Nick Coghlan wrote:
> > ...
> > The lack of a switch statement doesn't really bother me personally,
> > since I
> > tend to just write my state machine type code so that it works off a
> > dictionary that I define elsewhere,
>Not trying to push more LISP into python or anything, but of course
>we could converge your method and the switch statement elegantly if
>only we could put whole suites into lamdbas rather than just single
>expressions :-)

As has already been pointed out, this

1) adds function call overhead,
2) doesn't allow changes to variables in the containing function, and
3) even if we had a rebinding operator for free variables, we would have 
the overhead of creating closures.

The lambda syntax does nothing to fix any of these problems, and you can 
already use a mapping of closures if you are so inclined.  However, you'll 
probably find that the cost of creating the dictionary of closures exceeds 
the cost of a naive sequential search using if/elif.

More information about the Python-Dev mailing list