|
发表于 2021-11-4 12:13:52
|
显示全部楼层
迭代器:用iter和next实现叫迭代器
- a = [{'a': 1}, {'b': 2}, {'c': 3}, {'d': 4}, {'e': 5}, {'f': 6}, {'g': 7}, {'h': 8}, {'i': 9}, {'j': 10}, {'k': 11},
- {'l': 12}, {'m': 13}, ]
- class AA:
- def __init__(self):
- self.iter = iter(a)
- def test(self):
- while True:
- print(next(self.iter))
- if __name__ == '__main__':
- aa = AA()
- aa.test()
复制代码
生成器:用yield实现就生成器
- a = [{'a': 1}, {'b': 2}, {'c': 3}, {'d': 4}, {'e': 5}, {'f': 6}, {'g': 7}, {'h': 8}, {'i': 9}, {'j': 10}, {'k': 11},
- {'l': 12}, {'m': 13}, ]
- class AA:
- def gener(self, s):
- while True:
- if not len(s):
- break
- yield s[0]
- s = s[1:]
- def test(self):
- Mygener = self.gener(a)
- for i in Mygener:
- print(i)
- if __name__ == '__main__':
- aa = AA()
- aa.test()
复制代码 |
|