美文网首页
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这个关键字得用处

    yield 这个关键字,是指yield 声明得变量,变成一个生成器输出!在一个函数中,如果有这个关键字,pytho...

  • Python yield关键字

    Python中yield关键字解释 这篇文章关于python的yield关键字。并且文章中会解释什么是yield,...

  • python中的迭代器

    yield关键字 用法 普通函数: 带有yield关键字的函数: yield将函数的返回值变成了迭代器,其相当于获...

  • python——yield

    使用了yield关键字的函数不再是函数,而是生成器。(使用了yield的函数就是生成器) yield关键字有两点作...

  • 深入理解js中的yield

    yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器...

  • yield

    yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器...

  • # 深入理解js中的yield

    yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器...

  • Python札记42_生成器generator

    先看个例子: yield yielf定义 在Python中定义生成器必须使用关键字yield。它作为一个关键字,是...

  • A Bite of Python

    yield 当一个函数中出现了yield关键字时,这个函数就变成了一个生成器,调用这个函数时会返回一个genera...

  • 协程关键字 yield 和 yield from

    yield 当一个函数中出现yield关键字的时候,那么这个函数就是一个生成器。可以用for循环或者next()函...

网友评论

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

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