具體解釋了怎麼用迭代,怎樣用迭代,怎樣轉換成迭代,可以看看(一)
from collections.abc import iterable
from collections.abc import iterator
import time
class person(object):
def __init__(self):
self.names = list()
self.current_num = 0
def add_person(self,name):
def __iter__(self):
#pass
return personsiterator(self)
class personsiterator(object):
def __init__(self,obj):
self.obj = obj
self.current_num = 0
def __iter__(self):
pass
def __next__(self):
#pass
#return 12345
if self.current_num < len(self.obj.names):
ret = self.obj.names[self.current_num]
self.current_num += 1
#return self.obj.names[self.current_num]
return ret
else:
raise stopiteration
p1 = person()
p1.add_person('張三')
p1.add_person('李四')
p1.add_person('王五')
p_iter = iter(p1)
while true:
try:
ret = next(p_iter)
print(ret)
except exception:
break
執行結果:
(二)
from collections.abc import iterable
from collections.abc import iterator
import time
class person(object):
def __init__(self):
self.names = list()
self.current_num = 0
def add_person(self,name):
def __iter__(self):
#pass
return personsiterator(self)
class personsiterator(object):
def __init__(self,obj):
self.obj = obj
self.current_num = 0
def __iter__(self):
pass
def __next__(self):
#pass
#return 12345
if self.current_num < len(self.obj.names):
ret = self.obj.names[self.current_num]
self.current_num += 1
#return self.obj.names[self.current_num]
return ret
else:
raise stopiteration
p1 = person()
p1.add_person('張三')
p1.add_person('李四')
p1.add_person('王五')
print(isinstance(p1,iterable)) #判斷是否可以迭代
# iter()的作用是呼叫p1的iter()方法
# next()的作用是呼叫迭代器的next方法
p_iterator = iter(p1)
print(isinstance(p_iterator,iterator)) #判斷是否為迭代器
for temp in p1:
print(temp)
time.sleep(1)
執行結果:
python中迭代器和iter 函式
迭代器是在版本2.2被加入到python的,它為類序列物件提供了乙個類序列的介面。python的迭代無縫地支援序列物件,而且它還允許程式設計師迭代非序列型別,包括使用者定義的物件。迭代器用起來很靈巧,你可以迭代不是序列但表現處序列行為的物件,例如字典的鍵 乙個檔案的行,等等。當你使用迴圈迭代乙個物件...
python中迭代器和iter 函式
迭代器為類序列物件提供了乙個類序列的介面。python的迭代無縫地支援序列物件,而且它還允許程式設計師迭代非序列型別,包括使用者定義的物件。迭代器用起來很靈巧,你可以迭代不是序列但表現處序列行為的物件,例如字典的鍵 乙個檔案的行,等等。迭代器的作用如下 提供了刻擴充套件的迭代器介面 對列表迭代帶來了...
python 迭代器和iter 生成器
什麼是迭代器 一組資料結構 可以利用索引從0開始迭代到續寫的最後乙個條目 我們已經知道可以對list tuple str等型別的資料使用for in 的迴圈語法從其中依次拿到資料進行使用,我們把這樣的過程稱為遍歷,也叫迭代。我們把可以通過for in 這類語句迭代讀取一條資料供我們使用的物件稱之為可...