新手入门python,问题浅显,求大神解答
代码如下:#-*-coding:cp936-*-defcheckIndex(key):ifnotisinstance(key,(int,long)):raiseTypeE...
代码如下:
# -*- coding: cp936 -*-
def checkIndex(key):
if not isinstance(key,(int,long)):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):
checkIndex(key)
try:return self.changed[key]
except KeyError:
return self.start+key*self.step
def __setitem__(self,key,value):
checkIndex(key)
self.changed[key]=value
>>> s=ArithmeticSequence(1,2)
>>> s[4]
9
>>> s[4]=2
这里为什么一开始就可以使用Key这个参数?
执行 s[4]=2的时候为什么知道要调用__setitem__? 展开
# -*- coding: cp936 -*-
def checkIndex(key):
if not isinstance(key,(int,long)):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):
checkIndex(key)
try:return self.changed[key]
except KeyError:
return self.start+key*self.step
def __setitem__(self,key,value):
checkIndex(key)
self.changed[key]=value
>>> s=ArithmeticSequence(1,2)
>>> s[4]
9
>>> s[4]=2
这里为什么一开始就可以使用Key这个参数?
执行 s[4]=2的时候为什么知道要调用__setitem__? 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询