我不确定您要做什么。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)