1. 程式人生 > >python 學習 D13 叠代器 生成器 列表推導式 生成器表達式

python 學習 D13 叠代器 生成器 列表推導式 生成器表達式

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 叠代器 生成器 列表推導式 生成器表達式