select case

Hernán Martínez Foffani hernan en orgmf.com.ar
Vie Abr 22 12:03:43 CEST 2005


>> Normalmente, en Python no hace falta hacer select case (quiero decir
>> que hay mejores maneras de hacer las cosas). Pero si estás
>> convirtiendo código: 
>> 
>> http://vb2py.sourceforge.net/docs/select.html
>> 
>>    _select5 = Value
>>    if (_select5 == 1):
>>        DoOne()
>>    elif (_select5 == 2):
>>        DoTwo()
>>    elif (_select5 == 3) or (_select5 == 4):
>>        DoThreeOrFour()
>>    elif (5 <= _select5 <= 10):
>>        DoFiveToTen()
>>    else:
>>        DoElse()
>> 
>> 
> Esto funciona, pero tiene un estilo un poco C. Si se puede es mejor
> comprobar la identidad (con is) y no la igualdad de valores, puesto
> que es más rápido comparar dos direcciones de memoria que usar una
> función de comparación (que no siempre son enteros o comparaciones
> evidentes). Además, es más legible así:
> 
> ... resto cortado ...

Porfa, no sobreusen el "is".

Casualmente, a proposito del select-case, se comentaba en
python-dev la posibilidad de hacer que el lenguaje
reconozca el patrón de código
    if (x == val1):
        ...
    elif (x == val2):
        ...
    elif (x == val3):
        ...
    else:
        ...
y lo compile en codigo O(1) en vez de O(n) (n cantidad de
comparaciones.)

-H.

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es