Я не уверен, что ты пытаешься сделать. Python - очень динамичный язык; вам обычно не нужно объявлять переменные, пока вы на самом деле не собираетесь назначать или использовать их. Я думаю, что вы хотите сделать, это просто
foo = None
который назначит значение None
переменной foo
.
РЕДАКТИРОВАТЬ: То, что вы действительно хотите сделать, это просто:
#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"
Это немного трудно сказать , если это действительно правильный стиль для использования с такой короткий пример кода, но это более «Pythonic» способ работы.
РЕДАКТИРОВАТЬ: ниже комментарий JFS (размещен здесь, чтобы показать код)
Не имеет отношения к вопросу ОП, но приведенный выше код можно переписать так:
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)
ПРИМЕЧАНИЕ: если some_condition()
возникает исключение, то found
это не связано.
ПРИМЕЧАНИЕ: если len (sequence) == 0, item
это не связано.
Приведенный выше код не рекомендуется. Его цель - проиллюстрировать, как работают локальные переменные, а именно, может ли «переменная» «определяться», может быть определена только во время выполнения в этом случае. Предпочтительный способ:
for item in sequence:
if some_condition(item):
do_something(item)
break
Или
found = False
for item in sequence:
if some_condition(item):
found = True
break
if found:
do_something(item)