Nie jestem pewien, co próbujesz zrobić. Python jest bardzo dynamicznym językiem; zwykle nie musisz deklarować zmiennych, dopóki nie zamierzasz ich przypisać lub użyć. Myślę, że to, co chcesz zrobić, jest po prostu
foo = None
który przypisze wartość None
do zmiennej foo
.
EDYCJA: Wydaje się, że naprawdę chcesz to zrobić:
#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"
Trochę trudno jest stwierdzić, czy to naprawdę odpowiedni styl do użycia z takiego krótkiego przykładu kodu, ale jest to bardziej „Pythoński” sposób pracy.
EDYCJA: poniżej jest komentarz JFS (opublikowany tutaj, aby pokazać kod)
Nie ma związku z pytaniem PO, ale powyższy kod można przepisać jako:
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)
UWAGA: jeśli some_condition()
podniesiony zostanie wyjątek, wówczas nie found
jest związany.
UWAGA: jeśli len (sekwencja) == 0, to item
jest niezwiązane.
Powyższy kod nie jest wskazany. Jego celem jest zilustrowanie działania zmiennych lokalnych, a mianowicie, czy „zmienna” jest „zdefiniowana”, w tym przypadku można ją określić tylko w czasie wykonywania. Preferowany sposób:
for item in sequence:
if some_condition(item):
do_something(item)
break
Lub
found = False
for item in sequence:
if some_condition(item):
found = True
break
if found:
do_something(item)