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