Я не впевнений, що ти намагаєшся зробити. Python - дуже динамічна мова; зазвичай не потрібно оголошувати змінні, поки ви фактично не збираєтесь їх призначати або використовувати. Я думаю, що ти хочеш зробити це просто
foo = None
який призначить значення None
зміннійfoo
.
EDIT: Те , що ви на самому справі , здається, потрібно зробити , це просто так:
#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» спосіб роботи.
EDIT: нижче є коментар 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 (послідовність) == 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)