J
JH
Hi
Can anyone explain to me why the following codes do not work? I want to
try out using __cmp__ method to change the sorting order. I subclass
the str and override the __cmp__ method so the strings can be sorted by
the lengh. I expect the shortest string should be in the front. Thanks
def __init__(self, s):
str.__init__(self, s) # Ensure super class is initialized
def __cmp__(self, other):
return cmp(len(self), len(other))
Can anyone explain to me why the following codes do not work? I want to
try out using __cmp__ method to change the sorting order. I subclass
the str and override the __cmp__ method so the strings can be sorted by
the lengh. I expect the shortest string should be in the front. Thanks
def __init__(self, s):
str.__init__(self, s) # Ensure super class is initialized
def __cmp__(self, other):
return cmp(len(self), len(other))
a = myStr('abc')
b = myStr('Personal')
c = myStr('Personal firewall')
sorted([c, b, a]) ['Personal', 'Personal firewall', 'abc']