Discuss / Python / 头皮都想烂了也没明白为啥要返回 self.a

头皮都想烂了也没明白为啥要返回 self.a

Topic source

class Fib(object): def init(self): self.a, self.b = 0, 1 # 初始化两个计数器a,b

def __iter__(self):
    return self # 实例本身就是迭代对象,故返回自己

def __next__(self):
    self.a, self.b = self.b, self.a + self.b # 计算下一个值
    if self.a > 100000: # 退出循环的条件
        raise StopIteration()
    return self.a # 返回下一个值

不去想结果就明白了

觅路客

#3 Created at ... [Delete] [Delete and Lock User]

因为每次循环self.a=self.b 而self.b又等于self.a+self.b 这样每次b都是等于前一次的a+b,又赋值给

结合图片看,更容易理解一点 https://www.processon.com/view/link/5a751e7fe4b059c41ab2f02a


  • 1

Reply