所以我們來舉個簡單的例子吧。爲什麼Python在try語句中沒有實現elif語句?
my_list = [
{"name": "toto", "value": 3},
{"name": "foo", "value": 42},
{"name": "bar", "value": 56}
]
def foo(name):
try:
value = next(e["value"] for e in my_list if e["name"] == name)
except StopIteration:
print "Uuuh not found."
else:
if value % 2:
print "Odd !"
else:
print "Even !"
正如你所看到的,上面的代碼工作:
>>> foo("toto")
Odd !
>>> foo("foo")
Even !
>>> foo("kappa")
Uuuh not found.
我只是想知道,如果有,爲什麼我們不能用try
語句像這樣使用elif
語句特別的原因:
try:
value = next(e["value"] for e in my_list if e["name"] == name)
except StopIteration:
print "Uuuh not found."
elif value % 2:
print "Odd !"
else:
print "Even !"
當然,這不會因爲它是在try statement documentation定義工作,elif
聲明 沒有定義。但爲什麼 ?是否有特定的原因(如綁定/未綁定變量)?有這方面的消息嗎?
(旁註:沒有elif-statement
標籤?)
如果這是需要 –
您沒有前等等...不?因爲'if'語句會成爲一個新塊? – FunkySayu
@FunkySayu爲什麼不在try中加入if語句 – The6thSense