No estoy seguro de lo que estás tratando de hacer. Python es un lenguaje muy dinámico; generalmente no necesita declarar variables hasta que realmente las va a asignar o usar. Creo que lo que quieres hacer es simplemente
foo = None
que asignará el valor None
a la variable foo
.
EDITAR: Lo que realmente parece querer hacer es solo esto:
#note how I don't do *anything* with value here
#we can just start using it right inside the loop
for index in sequence:
if conditionMet:
value = index
break
try:
doSomething(value)
except NameError:
print "Didn't find anything"
Es un poco difícil saber si ese es realmente el estilo correcto para usar en un ejemplo de código tan corto, pero es una forma de trabajo más "pitónica".
EDITAR: a continuación hay un comentario de JFS (publicado aquí para mostrar el código)
Sin relación con la pregunta del OP, pero el código anterior se puede reescribir como:
for item in sequence:
if some_condition(item):
found = True
break
else: # no break or len(sequence) == 0
found = False
if found:
do_something(item)
NOTA: si some_condition()
genera una excepción, entonces found
no está consolidado.
NOTA: si len (secuencia) == 0 entonces item
no está consolidado.
El código anterior no es aconsejable. Su propósito es ilustrar cómo funcionan las variables locales, es decir, si la "variable" está "definida" podría determinarse solo en tiempo de ejecución en este caso. Forma preferible:
for item in sequence:
if some_condition(item):
do_something(item)
break
O
found = False
for item in sequence:
if some_condition(item):
found = True
break
if found:
do_something(item)