美文网首页
yield这个关键字得用处

yield这个关键字得用处

作者: PunkP | 来源:发表于2018-08-14 14:14 被阅读0次

    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将调用一个子协程(也就是在一个协程中调用另一个协程)并直接获得子协程的返回结果。

    相关文章

      网友评论

          本文标题:yield这个关键字得用处

          本文链接:https://www.haomeiwen.com/subject/vpfvbftx.html