Python中的yield是一个关键字,它可以用来实现类似于迭代器的功能,它可以把一个函数变成一个生成器,从而使得函数可以暂停执行,而且可以在函数之间传递数据。
使用yield的最大好处是可以把复杂的操作拆分成一系列的步骤,每一步都可以暂停执行,这样可以极大的提高程序的效率,减少内存的消耗。
使用方法
使用yield的基本方法是在函数中使用yield语句,比如:
def my_generator(): yield 1 yield 2 yield 3
上面的代码定义了一个生成器函数,这个函数可以用来生成一系列的数字,比如:
for i in my_generator(): print(i)
上面的代码会输出:
1 2 3
yield还可以接收参数,比如:
def my_generator(n): for i in range(n): yield i
上面的代码定义了一个生成器函数,这个函数可以生成一系列的数字,比如:
for i in my_generator(5): print(i)
上面的代码会输出:
0 1 2 3 4
应用示例
yield的应用示例可以用来实现斐波那契数列,比如:
def fibonacci(n): a, b = 0, 1 for _ in range(n): a, b = b, a + b yield a
上面的代码定义了一个生成器函数,这个函数可以生成斐波那契数列,比如:
for i in fibonacci(10): print(i)
上面的代码会输出:
1 1 2 3 5 8 13 21 34 55
yield还可以用来实现更复杂的操作,比如:
def my_generator(): yield 1 yield 2 yield 3 yield 4 yield 5 yield 6 yield 7 yield 8 yield 9 yield 10
上面的代码定义了一个生成器函数,这个函数可以生成一系列的数字,比如:
for i in my_generator(): print(i)
上面的代码会输出:
1 2 3 4 5 6 7 8 9 10
:Python中的yield是一个非常强大的关键字,它可以用来实现类似于迭代器的功能,可以把复杂的操作拆分成一系列的步骤,每一步都可以暂停执行,这样可以极大的提高程序的效率,减少内存的消耗。