1. 程式人生 > >關於迭代器和生成器

關於迭代器和生成器

迭代器和生成器
迭代器 - 概念 可迭代的/可迭代物件
   什麼是協議---python規定的 : 可迭代型別 和 python語言之間的協議
可迭代協議---內部含有'__iter__'方法的資料型別都是可迭代的
迭代器協議---內部含有__next__和__iter__方法的變數/值都是迭代器
迭代器特點:節省記憶體,惰性運算,一次性取值,只能能按順序取
iterable 可迭代的 (整型不可迭代)
dir()
用dir函式檢視一個數據型別的方法,在這些方法中,帶雙下劃線的方法叫做'魔法方法','雙下方法','內建方法'可以呼叫但是不需要你直接呼叫
什麼是迭代器?
iterator 迭代器
{'__next__','__setstate__','__length_hint__'}
__length_hint__() 迭代器中有多少個元素
__setstate__() 控制迭代器從哪開始
__next__() 從迭代器中取下一個值
迭代器作用---節省記憶體,for迴圈就是利用了迭代器節省記憶體的特點來對python當中的變數來進行操作
生成器
生成器:程式設計師通過簡單的函式就可以實現
生成器特點:呼叫之後不執行,需要next來觸發這個函式繼續向下執行
def finc():
  print('hello')
  yield 1 #含有yield 生成器函式 停止符(記錄符)
呼叫生成器函式,而是返回一個生成器(generator)
所有生成器都是迭代器