Manejo simple de parámetros
Marcos Sánchez Provencio
rapto en arrakis.es
Mie Jun 11 12:29:34 CEST 2003
La manera más sencilla sería usar una biblioteca,
http://optik.sourceforge.net/ o similares (no sé si ya hay alguna
estándar de Python).
¿A alguien se le ocurre algo ingenioso?
El mi? 11-06-2003 a las 12:00, Esteban Manchado Velázquez escribió:
> On Wed, Jun 11, 2003 at 11:42:00AM +0200, Marcos Sánchez Provencio wrote:
> > ¿Por qué es ortopédico? Se entiende mejor que las versiones de ruby y
> > perl. Ya se sabe, explícito es mejor que implícito.
>
> /me intentando evitar en una guerra de lenguajes :-)
>
> Son formas distintas de verlo, pero algo que es trivial y bastante usual,
> en mi opinión debería poder hacerse con una construcción del lenguaje o con
> una expresión hecha. Claro, que también prefiero Ruby y Perl a Python, y
> ustedes seguramente no ;-)
>
> Sobre lo de que se entiende mejor y lo de que explícito es mejor que
> implícito, reconocerás que es una opinión :-) Quiero decir, vale, es más fácil
> de entender para alguien que _no_sabe_, y más fácil de aprender (para
> cualquiera, sin ninguna duda), pero yo, como programador que ya conozco el
> lenguaje, entiendo mucho mejor esto:
>
> Ruby:
> servidor = ARGV.shift || 'miservidor'
> usuario = ARGV.shift || 'miusuario'
> clave = ARGV.shift || 's3cr3t4'
>
> que esto, sobre todo porque ocupa mucho más y los detalles están especificados
> explícitamente (detalles que realmente no me interesan en _este_ caso, y que
> en mi opinión ocultan el propósito de esa parte del programa):
>
> if len(sys.argv) > 0:
> servidor = sys.argv.pop(0)
> else:
> servidor = 'miservidor'
>
> if len(sys.argv) > 0:
> usuario = sys.argv.pop(0)
> else:
> usuario = 'miusuario'
>
> if len(sys.argv) > 0:
> clave = sys.argv.pop(0)
> else:
> clave = 's3cr3t4'
>
> Es decir, que con la versión de Ruby no me pierdo en detalles, de un vistazo
> sé exactamente qué está pasando, y no tengo que ponerme a leer las llamadas.
>
> Con esto no digo que implícito sea mejor que explícito, sólo digo que en
> este caso, creo que hacerlo explícitamente no es más que una molestia y esta
> legibilidad al programa (insisto, para alguien que sepa programar en el
> lenguaje, no para alguien que intenta aprender a programar).
>
> Por cierto, retomando la pregunta inicial: ¿quieres decir que no se te
> ocurre ninguna forma de hacerlo más corto? :-)
>
> Saludos,
Más información sobre la lista de distribución Python-es