Otra pildorita de Python. Siempre echaba de menos una orden de control del flujo del tipo switch de PHP. Hasta ahora siempre hacÃa un sucio hack con if-s anidados (si asi de WTF es uno :P). Pero hoy, cansado ya y con necesidad urgente he rebuscado en san google y he encontrado que se puede hacer tan sencillo como mapeandola funciones a valores en un array. Sacado del blog de Simon Willson :
#Definimos las funciones
def alerta(texto):
print "ALERTA: %s"%texto
def farsa(texto):
print "FARSA: %s"%texto
#Definimos el array mapeador
case = {
'a': alerta,
'f': farsa
}
variable='a'
print variable
case[variable]("lala")
print "Ahora cambiamos"
variable='f'
print variable
case[variable]("lele")