当前位置:王中王鉄算盘开奖结果 > 操作系统 > 揭开yield关键字的神秘面纱

揭开yield关键字的神秘面纱

文章作者:操作系统 上传时间:2019-11-05

王中王鉄算盘开奖结果,写在题词

平日会看见,python函数中带有yield关键字,那么yield是何等,有哪些效果?

 

答案:能够明白yield是叁个生成器;

功效:境遇yield关键字,函数会一贯回到yield值,约等于return;不一致的是下一次调用的时候会从yield之后的代码在此以前实行。

 

生成器是怎样?

是足以迭代的,不过你 只好读取它三遍 ,因为它并不把具备的值放在内存中,它是实时地生成数据:

 

有人或者会说,作者直接迭代,遍历多好,为何要用生成器,然后去遍历生成器,那多劳神。

那就是说您要打听,list列表,全部数据是积累在内部存储器中的。尽管数据量超大,会非常耗内部存款和储蓄器。

 

 

yield是一个异样的return?

不等的是实行进度中遇到yield关键字,会阻断,yield 重临的是三个生成器。

率先次迭代中您的函数会试行,从早先到达 yield 关键字,然后回来 yield 后的值作为第三回迭代的归来值.

下一场,每回实施那个函数都会继续实行你在函数内部定义的可怜循环的下一回,再回来那些值,直到未有得以回来的。

 

瞩目,当函数中冒出yield,该函数再次回到的便是二个生成器。不在是平日函数。

def func(num):
    n,a,b = 0,0,1
    while num > n:
        yield b  #阻断,返回b
        a,b = b,a + b
        n+=1

for i in  func(19): #func(19)是一个生成器,生成器只有调用时执行一次。所以这里用循环
    print i

 

除了for循环取值,你也足以透过next()来取下一个值。

t = func(19)
t.next()

 

本文由王中王鉄算盘开奖结果发布于操作系统,转载请注明出处:揭开yield关键字的神秘面纱

关键词: