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
语句立即退出函数。(也许你把迭代器和生成器混为一谈,考虑的是如何代替
返回