1、创建生成器方法1([ ] to ( ))
要创建一个生成器,有很多种方法。第一种方法很简单,只要把一个列表生成式的 [ ] 改成 ( )

2、创建生成器方法2(yield)
定义generator的另一种方法:如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。此时按照调用函数的方式( 案例中为F = fib() )使用生成器就不再是执行函数体了,而是会返回一个生成器对象( 案例中为F ),然后就可以按照使用迭代器的方式来使用生成器了。
generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
def fib():
current = 0
num1, num2 = 0, 1
while True:
num = num1
num1, num2 = num2, num1 + num2
current += 1
yield num
F = fib()
for i in range(100):
print(next(F))
本文详细介绍了Python中生成器的两种创建方法:通过将列表生成式中的方括号替换为圆括号,以及使用yield关键字定义生成器函数。通过实例演示了如何使用yield创建斐波那契数列生成器,并解释了生成器与普通函数执行流程的区别。

676

被折叠的 条评论
为什么被折叠?



