select case

Esteban elucero en ffyb.uba.ar
Vie Abr 22 15:26:42 CEST 2005


gracias por contestar
----- Original Message ----- 
From: "Rafael Villar Burke" <pachi en mmn-arquitectos.com>
To: "La lista de python en castellano" <python-es en aditel.org>
Sent: Thursday, April 21, 2005 1:08 PM
Subject: Re: [Python-es] select case


> Marcos Sánchez Provencio wrote:
>
> >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í:
>
> if (_select5 is 1):
>         DoOne()
> elif (_select5 is 2):
>         DoTwo()
> elif (_select5 is 3) or (_select5 is 4):
>         DoThreeOrFour()
> elif (5 <= _select5 <= 10):
>         DoFiveToTen()
> else:
>         DoElse()
>
> Si tienes un número de valores cerrado una opción seguramente más rápida
> y que te vale para cualquier tipo de datos es usar un diccionario para
> hacer dispatching. Por ejemplo:
>
> que_hago_con_este_valor = {1:DoOne, 2:DoTwo, 3:DoThree}
> este_mismo = el_valor_que_me_das
> dame_argo = que_hago_con_este_valor[este_mismo]()
>
> Un saludo,
>
> Pachi
>


----------------------------------------------------------------------------
----


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

------------ 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