당신이 무엇을하려고하는지 잘 모르겠습니다. 파이썬은 매우 역동적 인 언어입니다. 실제로 변수를 할당하거나 사용할 때까지 변수를 선언 할 필요는 없습니다. 당신이하고 싶은 것은 단지
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의 의견입니다 (코드를 표시하기 위해 게시 됨)
OP의 질문과 관련이 없지만 위의 코드는 다음과 같이 다시 작성할 수 있습니다.
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)