2013-02-21 177 views
1

(在Python 3.2)沒有錯誤用盡迭代器,但在For循環

miters = map(abs,(-1,2,5)) 
for i in miters: 
    print(i) 
1 
2 
5 

next(miters) 
--> StopIteration 

for i in miters: 
    print(i) 
--> ?? Nothing Happens.. 

爲什麼我不能在第二個for循環得到「StopIteration異常」錯誤消息? '斜接'已經用盡,所以如果我再次循環,我認爲會有'StopIteration'...

任何人都可以告訴我爲什麼?

+0

@MartijnPieters不錯的答案:)書籤那一個 – 2013-02-21 13:38:09

回答

4

for循環使用StopIteration來確定何時停止。所以它吞下異常並立即停止。

+0

謝謝!現在我明白了。 – nemonein 2013-02-22 06:42:33