python2的比较函数,cmp

class Shu(object):
    def __init__(self,ss):
        self.ss = ss
        
    def __str__(self):
        return '(%s: %s)' % (self.name, self.score)
    __repr__ = __str__

    def __cmp__(self, s):
        print ('func __cmp__ work')
        if self.ss < s.ss:
            return -1
        elif self.ss > s.ss:
            return 1
        else:
            return 0

a=Shu(3)
b=Shu(2)
c=a>b#运行__cmp__,c为True
d=cmp(a,b)#运行__cmp__,d为1,注意d与上面c类型不同,一个int,一个bool

python2的比较函数是cmp.cmp调用的是对象的__cmp__方法,字符串,整数,列表等对象都内置该方法。

但是在pyhon3的比较函数已经不是cmp了

猜你喜欢

转载自www.cnblogs.com/saolv/p/9486397.html