一个关于迭代器的问题
这段代码是书里看到的,不是很理解为什么__iter__()里为什么return的是self?#! /usr/bin/env pythonclass MyItertator(object):
def __init__(self, step):
self.step = step
def next(self):
if self.step == 0:
raise StopIteration
self.step -= 1
return self.step
def __iter__(self):
print type(self), self
return self
for el in MyItertator(5):
print el
<class '__main__.MyItertator'> <__main__.MyItertator object at 0xb76e090c>
4
3
2
1
0
for的自定义类不就是这么规定的吗?
回复 2# weishuo1999
不是for,我是想知道class定义里面的__iter__(),为什么返回的self。
http://yolila.blog.163.com/blog/static/78013702201062021321741/ 在Python里,__iter__方法是用来返回iterator的;对于本身就是iterator的对象,当然就返回对象本身了。
或许这个对你有帮助:
http://blog.chinaunix.net/uid-15174104-id-3988899.html
http://blog.chinaunix.net/uid-15174104-id-4172583.html
页:
[1]