1. 程式人生 > >python3叠代器

python3叠代器

解釋器 變量 關系 使用 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)
if
res: print(s,可叠代) else: print(s,不可叠代)

3.與for循環的關系

只要是可叠代的就可以使用for循環

三、叠代器協議

叠代器協議:含有__iter__和__next__方法,就是叠代器

四、

python3叠代器