zoukankan      html  css  js  c++  java
  • 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#运行a.__cmp__(b),c为True
    d=cmp(a,b)#运行a.__cmp__(b),d为1,注意d与上面c类型不同,cmp返回的是0,-1,1

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

    而给列表排序的函数sorted,也是通过cmp函数确定两个元素的大小关系,然后再利用插入排序的改进版的(与插入排序原理相同,不同的是,插入排序插入时是从已排序部分的最后一个元素进行比较,而这个是从中间进行比较)算法完成排序,返回排好序的一个新的列表。但注意,他并不改变原列表

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

  • 相关阅读:
    Python有返回值的函数_布尔函数
    struts通配符*的使用
    实现action的三种方法
    filter
    struts常量<constant>说明
    dtd文件本地配置
    namespace
    Spring的第一个例子
    SSH新学,关于面向对象的看法
    @OneToMany---ManyToOne
  • 原文地址:https://www.cnblogs.com/saolv/p/9486397.html
Copyright © 2011-2022 走看看