您好,登錄后才能下訂單哦!
官網解釋:
object.
__getitem__
(self, key)
Called to implement evaluation of self[key]
. For sequence types, the accepted keys should be integers and slice objects. Note that the special interpretation of negative indexes (if the class wishes to emulate a sequence type) is up to the __getitem__()
method. If key is of an inappropriate type, TypeError
may be raised; if of a value outside the set of indexes for the sequence (after any special interpretation of negative values), IndexError
should be raised. For mapping types, if key is missing (not in the container), KeyError
should be raised.
Note:
for
loops expect that an IndexError
will be raised for illegal indexes to allow proper detection of the end of the sequence.對于Fibonacci數列,當我們想抽取特定位置的值看,那又該怎么做,于是就出來了__getitem__這樣的函數。
int、list類型:切片(沒有step)
#!/usr/bin/python
# -*- coding: utf-8 -*-
class Fib(object):
def __getitem__(self, n):
if isinstance(n, int): # n是索引
a, b = 1, 1
for x in range(n):
a, b = b, a + b
return a
if isinstance(n, slice): # 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[0:4]
print f[9]
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。