#定义一个生成器 ''' 在使⽤⽣成器实现的⽅式中,我们将原本在迭代器__next__⽅法中实现的基本逻辑放到⼀个函数中来实现, 但是将每次迭代返回数值的return换成了 yield,此时新定义的函数便不再是函数,⽽是⼀个⽣成器了。 yield关键字有两点作⽤: 保存当前运⾏状态(断点),然后暂停执行,即将⽣成器(函数)挂起 将yield关键字后⾯表达式的值作为返回值,此时可以理解为起到了return的作⽤ 可以使⽤next()函数让⽣成器从断点处继续执行,即唤醒⽣成器(函数) ''' def fib(n): num1,num2 = 0,1 i = 0 while i < n: yield num1 num1,num2 = num2,num1 + num2 i += 1 if __name__ == '__main__': gen_obj = fib(5) print(gen_obj.__next__()) print(gen_obj.__next__()) print(gen_obj.__next__()) print(gen_obj.__next__()) print(gen_obj.__next__())
Python3知识点:生成器
最新推荐文章于 2023-07-10 03:00:00 发布