魔法方法使用求助
python新手一个,正在学习中,在python的魔法方法使用的过程中遇到问题,请教大家:程序代码:
def CheckIndex(key):
if not isinstance(key,(int, long)): raise TypeError
if key < 0 : raise IndexError
class Sequence:
def __init__(self,start = 0, step = 1):
self.start =start
self.step = step
self.change = {}
def __getitem__(self,key):
CheckIndex(key)
try: return self.change
except KeyError:
return self.start + key*self.step
def __setitem__(self, key, value):
CheckIndex(key)
self.change = value
s = Sequence(1,2)
t=Sequence(2,4)问题:
1.CheckIndex对象定义了值key的类型,大于0的int 和long的数值都是可以的,在__getitem__方法中调用CheckIndex去检查key=4时应该可以检查过去的,应该返回return self.change 这样的存储值,怎么就变成了返回异常开始计算值了?
2.类Sequence 初始化时,start =0,step=1. 在使用s = Sequence(1,2)把类实例化时,是不是把初始化的值修改为start =1 ,step =2?
python3.0之后没有long了,你可以试一下type(long)应该是异常的,type(int)是正常的,int和long合并了
第二个问题当然是对的啦
页:
[1]