1. 程式人生 > >菜鳥眼中的生成器

菜鳥眼中的生成器

object 返回對象 spa int 遇到 def 而不是 推導 菜鳥

‘‘‘
生成器:
方法1:將列表推導式的[]改成(),生成器不會一下子把所有內容生成出來,在我們需要的時候用next()去生成
方法2:在函數裏面加上yield。
‘‘‘
# --------------------()------------------------------
b = (x for x in range(10))
print(next(b)) #0
print(next(b)) #1
print(next(b)) #2
print(next(b)) #3
print(next(b)) #4
print(next(b)) #5
print(next(b)) #
6 print(next(b)) #7 print(next(b)) #8 print(next(b)) #9 # --------------yeild用法------------------------------- ‘‘‘ yield作用:返回對象,暫停函數,等待下次next重新激活 yield表達式只能在函數中使用 yield表達式可以使函數成為一個生成器 yield可以返回表達式結果,並且暫停函數執行。 ‘‘‘ def func(): print(1111) yield 1 #yield一個對象 print(123)
print(321) yield 2 print(12345) a = func() # print(a) #生成器對象<generator object func at 0x000001437228E2A0> print(next(a)) #第一次執行遇到yield 1函數暫停將上面運行結果返回,還想要後面的繼續執行再寫一個print(next(a)) print(next(a)) #第二次執行遇到yield 2函數暫停。 ‘‘‘ Python使用生成器對延遲操作提供了支持,所謂延遲操作,是指在需要的時候才產生結果,而不是立刻產生結果,從而節省大量的 空間,這是生成器的主要好處。
‘‘‘

菜鳥眼中的生成器