
-
__getitem__函数传入参数可以是int也可以是切片对象
-
若传入的是切片对象,则函数相应输出切片对象
-
以费波拉契函数为例分别判断函数输入int和slice对象时的情形
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17class Fib(object):
def __getitem__(self, n):
if isinstance(n, int):
a, b = 1, 1
for x in range(n):
a, b = b, a + b
return a
if isinstance(n, slice):
start = n.start
stop = n.stop
a, b = 1, 1
L = []
for x in range(stop):
if x >= start:
L.append(a)
a, b = b, a + b
return L -
1
2
3>f=Fib()
>f[0:5]
[1,1,2,3,5]
-
-
与之对应的是__setitem__()方法,把对象视作list或dict来对集合赋值。
-
__delitem__()方法,用于删除某个元素。




近期评论