|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
python基础教程上的例题(py2.0),我输入到pycharm上却报错了,求大神帮忙看一下?- 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)
- print s[4]
- s[4]=2
- print s[4]
- print s[5]
复制代码
打在pycharm里的,所以在s[4]前面加了print 让其显示输入结果
结果报错了:
- Traceback (most recent call last):
- File "/Users/Yuan_YangXin/PycharmProjects/magicMethod/9.2/IndexError144.py", line 22, in <module>
- print s[4]
- AttributeError: ArithmeticSequence instance has no attribute '__getitem__'
- Process finished with exit code 1
复制代码
注意缩进。 - 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)
- print s[4]
- s[4]=2
- print s[4]
- print s[5]
复制代码
|
|