欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

手寫一個python迭代器過程詳解

 更新時間:2019年08月27日 11:18:20   作者:三國小夢  
這篇文章主要介紹了手寫一個python迭代器過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

分析

  • 我們都知道一個可迭代對象可以通過iter()可以返回一個迭代器。
  • 如果想要一個對象稱為可迭代對象,即可以使用for,那么必須實現(xiàn)__iter __()方法。
  • 在一個類的實例對象想要變成迭代器,就必須實現(xiàn)__iter__()和__next__()方法。
  • 調(diào)用iter()時,在對象內(nèi)部默認調(diào)用__iter__(),即__iter__()的返回值應(yīng)該是一個迭代器。
  • for的每次循環(huán)中或者next()時,都是自動調(diào)用迭代器的__next__()方法,并有一個返回值。

實現(xiàn)

class Classmate:
 def __init__(self):
  self.names = []
  self.num = 0
 def add(self, name):
  self.names.append(name)
 def __iter__(self):
  return self
 def __next__(self):
  if self.num < len(self.names):
   ret = self.names[self.num]
   self.num += 1
   return ret
  else:
   raise StopIteration
c = Classmate()
c.add("張三")
c.add("李四")
c.add("王五")
for i in c:
 print(i)
"""
張三
李四
王五
"""

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論