example11.py 638 B

123456789101112131415161718192021222324252627282930313233343536
  1. """
  2. 自定义迭代器
  3. """
  4. class Fibo:
  5. """斐波拉切数列迭代器"""
  6. def __init__(self, num):
  7. self.num = num
  8. self.a, self.b = 0, 1
  9. self.idx = 0
  10. def __iter__(self):
  11. return self
  12. def __next__(self):
  13. if self.idx < self.num:
  14. self.a, self.b = self.b, self.a + self.b
  15. self.idx += 1
  16. return self.a
  17. raise StopIteration()
  18. def main():
  19. """主函数"""
  20. for val in Fibo(10):
  21. print(val)
  22. print('-' * 10)
  23. fibo_iter = Fibo(10)
  24. for _ in range(10):
  25. print(next(fibo_iter))
  26. if __name__ == '__main__':
  27. main()