有关python课后作业43讲的疑问
本帖最后由 belf 于 2020-4-10 09:24 编辑如题,以下是我自己写的代码,我并没有初始化__new__方法。但运行起来也是没有问题的,不知道这样写是否存在问题。另外,想知道初始化__new__方法的目的是什么?希望得到帮助,感谢大家!class Word(str):
def __lt__(self,other):
if self.find(' ') == -1:
return int.__lt__(len(self),len(other))
else:
self = self.split()
return int.__lt__(len(self),len(other))
def __le__(self,other):
if self.find(' ') == -1:
return int.__le__(len(self),len(other))
else:
self = self.split()
return int.__le__(len(self),len(other))
def __eq__(self,other):
if self.find(' ') == -1:
return int.__eq__(len(self),len(other))
else:
self = self.split()
return int.__eq__(len(self),len(other))
def __ne__(self,other):
if self.find(' ') == -1:
return int.__ne__(len(self),len(other))
else:
self = self.split()
return int.__ne__(len(self),len(other))
def __gt__(self,other):
if self.find(' ') == -1:
return int.__gt__(len(self),len(other))
else:
self = self.split()
return int.__gt__(len(self),len(other))
def __ge__(self,other):
if self.find(' ') == -1:
return int.__ge__(len(self),len(other))
else:
self = self.split()
return int.__ge__(len(self),len(other))
你这样写也是可以的。
按照小甲鱼的答案,重载__new__方法之后,在创建该类的对象的时候,就把传入的参数字符串进行了处理,删掉了空格以及之后的内容,将之限定成一个单词了。
例如:同样的执行a=Word("work hard"),你的程序得到得到a是字符串"work hard",小甲鱼的答案得到的a是"work" 感谢回答!谢谢!
页:
[1]