可叠代對象,叠代器(對象),生成器(對象)
阿新 • • 發佈:2018-01-19
() end break rime 素數 isp logs http rim
叠代器
可叠代對象:可叠代對象實現了__iter__方法,該方法返回一個叠代器對象。
叠代器: 那麽什麽叠代器呢?它是一個帶狀態的對象,他能在你調用next()方法的時候返回容器中的下一個值,任何實現了__iter__和__next__()(python2中實現next())方法的對象都是叠代器,__iter__返回叠代器自身,__next__返回容器中的下一個值,如果容器中沒有更多元素了,則拋出StopIteration異常。
a = [‘aaa‘, ‘bbb‘, ‘ccc‘] my_iterable = MyIterable(a) res2 = iter(my_iterable) while True: try: print(next(res2)) except StopIteration as e: break
生成器
class Project(object): def __init__(self, start, end): self.start = start self.end = end def isPrimeNum(self, k): # 判斷素數 if k < 2: return False for i in range(2, k): if k % i == 0: return False return True def __iter__(self): for i in range(self.start, self.end): if self.isPrimeNum(i): yield i ################################### res = Project(1,100) print(iter(res))
可叠代對象,叠代器(對象),生成器(對象)