Python 高級編程和異步IO併發編程 --09_1 Python中的迭代協議

# 什麼是迭代協議:包含兩個含義,可迭代類型,與迭代器Iterator
# 什麼是迭代器? 迭代器是訪問集合內元素的一種方式,一般用來遍歷數據
# 迭代器和以下標的訪問方式(list[i])不一樣,迭代器不能返回;
# 迭代器只能一條一條的訪問,迭代器提供了一種惰性訪問數據的方式
# 以下標的訪問方式,其背後的原理是__getitem__,
# python中可迭代的類型Iterable,比如list,其背後都是基於迭代協議,也就是__iter__這個方法。

# 如果是迭代器,必須實現__next__方法,迭代器繼承了Iterable

# list 是一個可迭代對象,因爲其包含__iter__這個方法,即實現了__iter__這個魔法函數,並沒有實現__next__ 所以,list這是一個可迭代類型,並不是迭代器

 

from collections.abc import Iterable,Iterator
a = [1,2]
print(isinstance(a,Iterable))   # True   # 說明list是可迭代類型
print(isinstance(a,Iterator))   # False  # 說明list並不是迭代器

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章