马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 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()[0]
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()[0]
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()[0]
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()[0]
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()[0]
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()[0]
return int.__ge__(len(self),len(other))
你这样写也是可以的。
按照小甲鱼的答案,重载__new__方法之后,在创建该类的对象的时候,就把传入的参数字符串进行了处理,删掉了空格以及之后的内容,将之限定成一个单词了。
例如:同样的执行a=Word("work hard"),你的程序得到得到a是字符串"work hard",小甲鱼的答案得到的a是"work"
|