python 學習 D13 叠代器 生成器 列表推導式 生成器表達式
阿新 • • 發佈:2018-05-16
true instance ins class 列表推導 叠代器協議 叠代器 方法 叠代
02,叠代器
可叠代對象:
內部含有__iter__ 遵循可叠代協議
dir 顯示裏面的所有方法 有 __iter__ 的方法就是 可叠代對象
# print(dir(‘123‘)) # ‘__iter__‘ # print(‘__iter__‘ in dir([1, 2, 3])) # print(‘__iter__‘ in dir({‘name‘:‘alex‘})) # print(‘__iter__‘ in dir({‘name‘})) # print(‘__iter__‘ in dir((1, 2, 3))) # print(‘__iter__‘ in dir(1)) # False# print(‘__iter__‘ in dir(True)) # False
叠代器:可叠代對象.__iter__()可以轉換成叠代器 ,滿足叠代器協議
內部含有__iter__且__next__
判斷 __iter__ 在不在dir(對象中)
isinstance()
節省內存。
惰性機制。
單向不可逆。
for循環的機制:
while
pass
可叠代對象
叠代器
兩者區別
模擬for循環機制
03,生成器
本質上是叠代器,用python代碼構建的。
生成器定義
生成器的寫法
yield
send
python 學習 D13 叠代器 生成器 列表推導式 生成器表達式