如果我想找到我的Python給定項目的數組索引,我會做這樣的事情:爲什麼array.index(「foo」)拋出一個異常,而不是返回-1,如果沒有找到元素?
a = ["boo", "foo", "bar", "foz"]
i = a.index("foo")
和i
將1
如果我在尋找一個不存在的項目a ValueError
異常被引發。
問題:爲什麼最好拋出一個異常,而不是返回-1
(如JavaScript的同等功能indexOf
呢)?我發現檢查-1更容易,而不是在try-catch中包裝代碼塊。
因爲pyton指數可以逆轉,'-1'意味着最後一個 – Netwave
「爲什麼一個功能使用兩種不同的機制來返回結果和報告錯誤?」 - 因爲那是理智的。 – deceze
實現相同的功能是微不足道的。 'def indexOf(needle,haystack):try:return hackstack.index(needle)except:return -1'我不會這麼做,因爲前面提到的Python中負向索引的原因。 – erip