在python中
for loop的形式爲
for element in collection:
pass
實作的方法是,for會去呼叫collection物件中的__iter__()方法,iter回傳具有
__next__()方法的物件。next()這個method會回傳下一個element。且已經達到最後物件又呼叫next()會得到StopIteration的例外
也就是說所有可以用for進行迴圈的object都要有__iter__()這個methode
或是可以用generator(yeild 語法)產生可以loop的objecet,免除自己寫__next__()跟__iter__()的麻煩
沒有留言:
張貼留言