from collections import Iterable,Iterator
class Febo():
def __init__(self,n):
self.n = n
# 定义变量记录肥波的前一位和后一位值
self.num1 = 0
self.num2 = 1
# 定义一个变量记录下表的位置
self.index = 0
# iter :返回可迭代对象的迭代器。 iter(可迭代对象) == __iter__
def __iter__(self):
return self
# next :获取迭代器中的数据
def __next__(self):
# 如果下标小于 传入的参数
if self.index < self.n:
ret = self.num1
self.num1,self.num2 = self.num2,self.num1+self.num2
self.index += 1
return ret
else:
raise StopIteration
febo = Febo(10)
print(febo)
# isinstance 判断是不是实例
print(isinstance(febo,Iterable))
print(isinstance(febo,Iterator))
for i in febo:
print(i)