何をしようとしているのかわかりません。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"
そのような短いコードの例から使用するのが本当に適切なスタイルかどうかを判断するのは少し難しいですが、より「Python的な」方法で作業できます。
編集:以下は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)