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