|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:
定义一个单词(Word)类继承自字符串,重写比较操作符,当两个Word类对象进行比较时,根据单词的长度来进行比较大小。
加分要求:实例化时如果传入的是带空格的字符串,则取第一个空格前的单词作为参数。
我写的代码就是在“取空格之前部分”出了问题:
class Word(str):
def __new__(cls,arg=''):
for i in range(len(arg)):
print(i)
if arg[i].isspace():
arg = arg[:i]
return str.__new__(cls,arg)
结果显示索引错误,具体如下:
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/python043比较字符.py", line 23, in <module>
w2 = word('abcd ef')
File "C:/Users/Administrator/Desktop/python043比较字符.py", line 5, in __new__
if arg[i].isspace():
IndexError: string index out of range
我把这段改了一下:
class word(str):
def __new__(cls,arg=''):
for i in arg:
if i.isspace():
arg = arg[:arg.find(i)]
return str.__new__(cls,arg)
所以想请教一下,我之前的那一段代码哪里出了问题,为什么会索引错误 ? |
|