14生成器
- 生成器:生成器與迭代器可以看成一種,生成器的本質就是迭代器。
- 唯一區(qū)別,生成器是我們自己用python代碼構建的數(shù)據(jù)結構,迭代器是系統(tǒng)提供的或者轉化得來的。
- 獲取生成器的三種方式:
- 生成器函數(shù)
- 生成器表達式
- python內部提供的一些
生成器函數(shù)獲得生成器
def func(): # 普通函數(shù)print(111)print(222)return 3 ret = func() print(ret) # 111 # 222 # 3 def func(): #生成器函數(shù)print(111)print(222)yield 3a = 1b = 2c = a + bprint(c)yield 4 ret = func()print(ret) # <generator object func at 0x0000020147426ED0> print(next(ret)) # 111 # 222 # 3 print(next(ret)) # 一個next對應一個yield # 3 # 4- return和yield的區(qū)別:
- return:函數(shù)中只存在一個return結束函數(shù),并且給函數(shù)的執(zhí)行者返回值
- yield:只要函數(shù)中有yield那么他就是生成器函數(shù)而不是函數(shù)
- 生成器函數(shù)中可以存在多個yield,yield不會結束生成器函數(shù),一個yield對應一個next
總結
- 上一篇: 23-爬虫之scrapy框架增量式实时监
- 下一篇: 15列表推导式