iterable对象和yield

对象包含__iter__ 方法就代表这个对象是可迭代对象,通过next()不断返回下一个数。

class Fab(object): 
 
    def __init__(self, max): 
        self.max = max 
        self.n, self.a, self.b = 0, 0, 1 
 
    def __iter__(self): 
        return self 
 
    def next(self): 
        if self.n < self.max: 
            r = self.b 
            self.a, self.b = self.b, self.a + self.b 
            self.n = self.n + 1 
            return r 
        raise StopIteration()

yield

yield可以把一个函数变成一个 generator,函数会返回一个可迭代对象。

posted @ 2022-05-01 01:17  羽翼红包  阅读(34)  评论(0)    收藏  举报