>>  A switch-statement offers only a modest readability improvement over
>> if-elif chains.
>
>
> Probably, which is why it hasn't been added yet. :-)
>
> But there is a definite readability improvement in that you *know*
> that it's always the same variable that is being compared and that no
> other conditions are snuck into some branches.

Hmm, when I saw that "arbitrary expressions" were being proposed, I took 
that took mean that the variable would have to be repeated in the branches:

   switch x:
      case  x.endswith('wart'):  salicylic_acid()
      case x.endswith('roid'):  preparation_h()
      default:  chicken_soup()




> I would
> think that it would be fine if some switches could be compiled into
> some kind of lookup table while others would just be translated into a
> series of if/elifs. As long as the compiler can tell the difference.
>
That's a worthy goal; of course, the devil is in the details.  Given:

 switch x:
    case 1:  one()
    case 2:  two()
    case 3:  three()
    default:  too_many()

Do we require that x be hashable so that the compiler can use a lookup 
table?


Raymond

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to