あなたが何をしようとしているのかわからない。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によるコメントです(コードを表示するためにここに投稿されています)
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)