Python 理解用户定义迭代器
在下面的代码中,我不明白为什么Python 理解用户定义迭代器,python,Python,在下面的代码中,我不明白为什么Hi3从未打印出来: class Counter(object): def __init__(self, size): self.size = size self.start = 0 def __iter__(self): print "called __iter__", self.size return self def next(self): if sel
Hi3
从未打印出来:
class Counter(object):
def __init__(self, size):
self.size = size
self.start = 0
def __iter__(self):
print "called __iter__", self.size
return self
def next(self):
if self.start < self.size:
print 'Hi1'
self.start = self.start + 1
print 'Hi2'
return self.start
print 'Hi3'
raise StopIteration
c = Counter(2)
for num in c:
print num
类计数器(对象):
定义初始值(自身,大小):
self.size=大小
self.start=0
定义(自我):
打印“称为”iter“,自我尺寸
回归自我
def next(自我):
如果self.start
要到达打印“Hi3”
您需要通过返回self.start
语句。请记住,return
语句立即退出函数。(也许你把迭代器和生成器混为一谈,考虑的是如何代替返回)