import multiprocessing
'''
用斐波那契数列理解迭代器的使用方法,在众多数据需要循环时,不适用
列表,而是用迭代器。
迭代不是迭代器,迭代器一定可以迭代
自定义类里需要有 iter 和 next 魔术方法,他们会自动调用对方的值。
'''
class Fibonacci():
def __init__(self,all_num):
self.all_num = all_num
self.current_num = 0
self.a = 0
self.b = 1
def __iter__(self):
return self
def __next__(self):
if self.current_num < self.all_num:
ret = self.a
self.a, self.b = self.b, self.a+self.b
self.current_num += 1 # 用来计次数
return ret
else:
raise StopIteration
fibo = Fibonacci(100)
for num in fibo:
print(num)
# a = 0
# b = 1
#
# for i in range(100):
# a,b =b, a+b
# print(a)