[Python-Dev] PEP 3103: A Switch/Case Statement (original) (raw)
Eric Sumner kd5bjo at gmail.com
Thu Jun 29 16:47:31 CEST 2006
- Previous message: [Python-Dev] PEP 3103: A Switch/Case Statement
- Next message: [Python-Dev] PEP 3103: A Switch/Case Statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
>> You mean something like this?: >> >> switch x in colours: >> case RED: >> # whatever >> case GREEN: >> # whatever >> case BLUE: >> # whatever >> >> I think Guido's right. It doesn't solve the underlying problem because the >> compiler still has to figure out how to build a dispatch table from the >> possible values in colours to the actual bytecode offsets of the cases. > > To implement this, you actually need two lookup tables: one particular > to the switch that maps labels to bytecode offsets, and one in the > dispatch table to map values to labels. The former is built when the > switch is compiled, and the latter is built wherever the dispatch > table is defined. Each lookup is still O(1), so the whole operation > remains O(1).
what's a "label" ?
In your example, RED, GREEN, and BLUE. colours provides a mapping from values to labels/cases, and the switch statement provides a mapping from labels/cases to code. Sorry about introducing a new term without saying anything about it.
-- Eric Sumner
- Previous message: [Python-Dev] PEP 3103: A Switch/Case Statement
- Next message: [Python-Dev] PEP 3103: A Switch/Case Statement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]