python3中的比較函數


在py2中,比較函數是cmp,而在py3,cmp已經不存在了,Py3啟用了新的比較方法

原來在py2中,a>b就會調用a對象中的__cmp__函數,而現在a>b會調用a對象中的__lt__函數。

import oprater
a=1
b=2
operator.lt(a, b) 
operator.le(a, b) 
operator.eq(a, b) 
operator.ne(a, b) 
operator.ge(a, b) 
operator.gt(a, b) 
operator.__lt__(a, b) 
operator.__le__(a, b) 
operator.__eq__(a, b) 
operator.__ne__(a, b) 
operator.__ge__(a, b) 
operator.__gt__(a, b)
'''
簡單說下這幾個函數的意思吧。
lt(a, b) 相當於 a < b
le(a,b) 相當於 a <= b
eq(a,b) 相當於 a == b
ne(a,b) 相當於 a != b
gt(a,b) 相當於 a > b
ge(a, b)相當於 a>= b
'''

 

class aa:
    def __init__(self,k):
        self.k=k
    
    def __gt__(self,b):
        print ('gt',self.k)
        return self.k>b.k
    def __lt__(self,b):
        print ('lt',self.k)
        return self.k<b.k
       
az=aa(1)
vc=aa(2)
if az>vc:
    print ('gt')
print ('~~~~~~')
if az<vc:
    print ('lt')

'''
gt 1
~~~~~
lt 1
lt

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM