yield这个关键字得用处

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容