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'实例本身就是迭代器。 –