Я не уверен, что ты пытаешься сделать. 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"
Сложно сказать, действительно ли это правильный стиль для использования на таком коротком примере кода, но - это более "питонский" способ работы.
РЕДАКТИРОВАТЬ: ниже комментарий 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)