37,720
社区成员
发帖
与我相关
我的任务
分享
class Fib(object):
def __init__(self):
self.__a, self.__b = 0, 1 # 初始化两个计数器 a,b
def __iter__(self):
return self # 实例本身是迭代对象
def __next__(self):
self.__a, self.__b = self.__b, self.__a + self.__b
if self.__a > 100: # 设置退出循环的条件
return StopIteration()
return self.__a # 返回下一个值
def __getitem__(self, idx):
__a, __b = 1, 1
for x in range(idx):
__a, __b = __b, __a + __b
return __a
# 测试__iter__,__getitem__
for n in iter(Fib()):
print(n)
f = Fib()
print(f[0])
print(f[1])