class Kids():
def __init__(self, list_of_kids):
self.kids = list_of_kids
def __next__(self):
return 'kawabanga'
def __iter__(self):
return self
kid = Kids([1,2,3])
kids_iter = iter(kid)
print(kid)
print(kids_iter)
print(iter([1,2,3]))
我已經構建了上面的代碼作爲示例。 我收到以下輸出:Iter內置函數與類
<__main__.Kids object at 0x102977b38>
<__main__.Kids object at 0x102977b38>
<list_iterator object at 0x102977be0>
據我瞭解:iter()
應該返回一個迭代器對象,但你可以看到,當我進入功能iter()
對象Kids
它返回一個Kids
對象,而不是一個迭代的目的。
您能解釋一下爲什麼當我在對象Kids
上調用iter()
時它不返回迭代器對象?
那麼,你的'__iter__'方法*不*回報'self'。這意味着'Kids'實例本身就是迭代器。 –