If corto en python

Hoy es uno de esos días en los que estoy programando y me interesa simplificar el código, pero necesito igualmente condicionales. Desde la época de C, una de las formas de realizar asignaciones condicionales sencillas era con un 'if corto', o lo que es lo mismo, pasar de algo tal que esto,
...
country = ''
if(lang == 'es') {
    country = 'ES'
} else {
    country = 'EN'
}
...
A algo como esto,
...
country = (lang == 'es' ? 'ES' : 'EN')
...
Este tipo de sentencias se aplican en muchos, por no decir todo tipo de lenguajes de programación, no sólo C. Por ejemplo en PHP,
...
$value = ($userid == $user['userid'] ? 'yes' : null);
...
Sin embargo, cuando quiero aplicar esta misma fórmula en Python, no me funciona. Esto no significa que Python no tenga un 'if acortado', sino que lo implementó de otra forma,
...
host = {
   'name': (tmp['dns'] if tmp.has_key('dns') else tmp['name'])
}
...
Como podéis observar en vez de usar el tradicional (a==B ? x : y), lo que hace es la asignación y luego al comprobación: (x if a==b else y) y suprime a la vez los operadores reducidos ? y :
Tenerlo presente si vais a programar en Python ;-)


1 comentario :

  1. Me gusto mucho el programa para ocupar un if mucho mas corto que el usual en python con esto voy a reducir el tamaño de mi codigo, esta clase de tecnicas de programamcion son similares a las de la web de este enlace y son geniales las puedo ocupar en mi dia a dia como desarrollador de software.

    ResponderEliminar

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios