python3叠代器
阿新 • • 發佈:2019-05-10
解釋器 變量 關系 使用 spa iterable 屬性 iter 參數
一、前提
1.dir()函數
dir()函數帶參數時,返回參數的屬性和方法列表;不帶參數時,返回當前範圍內變量、方法和定義的類型列表
# dir(參數):帶參數,返回參數的屬性和方法 s = ‘‘ print(dir(s)) print(dir([]))
2.雙下法
雙下方法,帶雙下劃線的方法,可以通過不止一種方法調用
l1 = [2, 1] l2 = [1, 2] print(l1 + l2) # l1+l2 -> l1.__add__(l2),通過python解釋器轉化 print(l1.__add__(l2))
二、可叠代協議
1.可叠代協議:只要含有__iter__方法,就是可叠代的
2.判斷
# 方法1,判斷是否含義__iter__方法 l1 = list(range(10)) res = ‘__iter__‘ in dir(l1) if res: print(‘l1,可叠代‘) else: print(‘l1,不可叠代‘)
# 方法2,通過導入模塊 from collections.abc import Iterable # from collections import Iterable 被棄用 s = ‘Hello, World!‘ res = isinstance(s, Iterable) ifres: print(‘s,可叠代‘) else: print(‘s,不可叠代‘)
3.與for循環的關系
只要是可叠代的就可以使用for循環
三、叠代器協議
叠代器協議:含有__iter__和__next__方法,就是叠代器
四、
python3叠代器