def check_index(key):
if not isinstance(key,int):raise TypeError
if key<0:raise IndexError
class ArithmeticSequence:
def _init(self,start=0,step=1):
self.start=start
self.step=step
self.changed={}
def _getitem_(self,key):
check_index(key)
try:return self.changed[key]
except KeyError:
return self.start+key*self.step
def _setitem_(self,key,value):
check_index(key)
if not isinstance(key,int):raise TypeError
if key<0:raise IndexError
class ArithmeticSequence:
def _init(self,start=0,step=1):
self.start=start
self.step=step
self.changed={}
def _getitem_(self,key):
check_index(key)
try:return self.changed[key]
except KeyError:
return self.start+key*self.step
def _setitem_(self,key,value):
check_index(key)
self.changed[key]=value
然后演示实例为
s=ArithmeticSequence(1,2)
s[4]
书上说结果为9,求解释,真心看不懂