yield这个关键字得用处

2018-08-14  本文已影响0人  PunkP

yield 这个关键字,是指yield 声明得变量,变成一个生成器输出!在一个函数中,如果有这个关键字,python解释器不再把其当成一个普通函数,而是当成一个生成器,生成器每次生成得结果是yield后面得指,在调用得时候,函数会执行到yield 输出之后,这个函数先停止执行,直到下一次调用得时候(使用生成器得next()方法,或者for方法遍历,for遍历也是内部调用得next()这个方法去实现的)

例如一个斐波那契数列:

    斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到

正常我们可以这样遍历打印出来:

    def fab(max):

   n, a, b = 0, 0, 1

   while n < max:

       print b

       a, b = b, a + b

       n = n + 1

结果就是

max=5

但是改为这样之后:

    def fab(max):

    n, a, b = 0, 0, 1

    while n < max:

        yield b

        # print b

        a, b = b, a + b

        n = n + 1

'''

这个函数就不是一个常规函数,变成了一个生成器

    要作为一个生成器去用,要么for遍历出来要么next()出来使用

for方式 next()方式

yield from将调用一个子协程(也就是在一个协程中调用另一个协程)并直接获得子协程的返回结果。

上一篇 下一篇

猜你喜欢

热点阅读