python2的比较函数,cmp

Posted 扫驴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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了

以上是关于python2的比较函数,cmp的主要内容,如果未能解决你的问题,请参考以下文章

python3中使用python2中cmp函数出现错误

python3中替换python2中cmp函数

Python函数-cmp()

Python3中替代Python2中cmp()函数的新函数(gt,ge,eq,le,lt)

python函数-------python2.7教程学习廖雪峰版

python3中sorted函数里关于cmp这一参数的改变