|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class Word(str):
def __new__(cls, word):
if ' ' in word:
print "Value contains spaces. Truncating to first space."
word = word[:word.index(' ')] #单词是第一个空格之前的所有字符
return str.__new__(cls, word)
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
class Word(str):
def __lt__(self, other): #小于
return len(self.split()[0]) < len(other.split()[0])
def __gt__(self, other): #大于
return len(self.split()[0]) > len(other.split()[0])
def __eq__(self, other): #等于
return len(self.split()[0]) == len(other.split()[0])
我这样不用__new__方法也是可以实现加分要求的,看起来好像是可以的,不知道有没有什么问题。还有既然是比较字符串的长度为什么不能等于呀?怎么会不符合逻辑?
不会出什么问题,但是每次都 split 效率会很低。
|
|