class Fib(object):
def __getitem__(self, n):
if isinstance(n, int):
print('int n=' + str(n))
a, b = 1, 1
for x in range(n):
print('x=' + str(x)) #range(0)时不进入循环
a, b = b, a+b
return a
if isinstance(n, slice):
print('slice n='+str(n))
start = n.start
stop = n. stop
if start is None:
start=0
a, b =1, 1
L = []
for x in range(stop):
if x >= start:
L.append(a)
a, b = b, a+b
return L
f=Fib()
print(f[:10]) # 前10个数
print(f[3]) # 3
print(f[0]) # 1
print(f[1]) # 1
通过类中的__getitem__()来访问斐波那契数列的任意一项及切片
最新推荐文章于 2022-08-14 00:38:32 发布