官網解釋:
創(chuàng)新互聯(lián)建站專注于企業(yè)成都營銷網站建設、網站重做改版、富蘊網站定制設計、自適應品牌網站建設、H5高端網站建設、商城網站建設、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為富蘊等各大城市提供網站開發(fā)制作服務。
object.
__getitem__
(self, key)
Called to implement evaluation of self[key]
. For sequence types,the accepted keys should beintegersandslice 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數(shù)列,當我們想抽取特定位置的值看,那又該怎么做,于是就出來了__getitem__這樣的函數(shù)。
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]