El equivalente a isset del PHP
Hernán Martínez Foffani
hernan en orgmf.com.ar
Dom Nov 28 13:48:08 CET 2004
> Aprovechando este mensaje quería saber si alguno me puede echar una
> mano por una pequeña duda.
>
> Resulta que estoy usando python para hacer un pequeño desarrollo Web,
> de este modo sustituyo el código PHP por python. Ahora me encuentro
> con la siguiente duda: - En PHP se podía saber si una determinada
> variable estaba definida, para ello empleaba: if ( !isset($a) )... -
> En python hago esto mismo pero de una manera mucho menos elegando,
> incluso diría que "chapucera": try: if a:
> ...
> except:
> ...
>
> Existe alguna manera de saber si una variable ha sido definida
> previamente, sin tener que usar excepciones ???
A mí no me parece chapucero usar excepciones. Una de las formas
idiomáticas es justamente esa, con la diferencia que se atrapa
específicamente NameError y no se usa el if (directamente se
escribe el nombre del objeto suelto.) Ejemplo:
>>> try:
... pepe
... print "pepe está"
... # trabajo con pepe
... except NameError:
... print "pepe no está"
...
pepe no está
>>>
Verás que es una construcción muy común en programas Python, por
ejemplo para detectar si True/False ya están definidos (que están
incluídos en el lenguaje a partir de la 2.3, creo...) Lo que
tiene de bueno es que el que lee el programa se da cuenta de
inmediato de la intención del programador.
Saludos,
-Hernán.
Más información sobre la lista de distribución Python-es