__cmp__ method
JH
john.hsu at sovereign.co.nz
Wed Jun 14 18:41:56 EDT 2006
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
>>> class myStr(str):
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']
>>>
More information about the Python-list
mailing list