例子如下,来自海那边某教程。
#一个用迭代器实现的斐波那契函数类。
class Fibs:
def __init__(self):
self.i = 0
self.j = 1
def __str__(self):
return str(self.i)
def __iter__(self):
return self
def __next__(self):
self.i, self.j = self.j, self.i + self.j
return self.i
#实例化
fibs = Fibs()
#in
print(100 in fibs)
运行结果是,如果测试数正好是斐波那契数,那程序就会停下来返回True。但如果正好不是……那迭代器就会一直运行下去……
我的问题是,有没有什么方法,可以重构这个类体,可以判断"in"传递进来的数值,如果超过一个限度就抛出一个错误?
还请大家赐教。
还有不知道怎么保持源码缩进……如果有知道的还请顺便告诉一下。
#一个用迭代器实现的斐波那契函数类。
class Fibs:
def __init__(self):
self.i = 0
self.j = 1
def __str__(self):
return str(self.i)
def __iter__(self):
return self
def __next__(self):
self.i, self.j = self.j, self.i + self.j
return self.i
#实例化
fibs = Fibs()
#in
print(100 in fibs)
运行结果是,如果测试数正好是斐波那契数,那程序就会停下来返回True。但如果正好不是……那迭代器就会一直运行下去……
我的问题是,有没有什么方法,可以重构这个类体,可以判断"in"传递进来的数值,如果超过一个限度就抛出一个错误?
还请大家赐教。
还有不知道怎么保持源码缩进……如果有知道的还请顺便告诉一下。