python中lt方法_Python的富比较方法__lt__、__gt__之间的关联关系分析
Python的富比較方法包括__lt__、__gt__分別表示:小于、大于,對應的操作運算符為:“”。那么是否象普通數字運算一樣,這兩個方法之間存在互反的關系呢?
Python沒有對__lt__、__gt__這兩個方法之間有什么強制關系,但建議__lt__和__gt__為互反,開發者完全可以根據業務邏輯的需要自己定義。我們來進行分析驗證:
當自定義類中兩個方法都定義了時,“”分別調用__lt__和__gt__方法;
當自定義類中定義了__lt__方法,未定義__gt__方法時,進行”>”比較也是調用__lt__方法,只是對調用值求反。案例:
>>> class Car():
def __init__(self,carname,oilcp100km, price):
self.carname,self.oilcp100km,self.price = carname,oilcp100km, price
def __lt__(self,other):
print("execute __lt__")
return self.price
>>>
>>> car1,car2,car3,car4 = Car('愛麗舍',8,10),Car('凱美瑞',7,27),Car('愛麗舍',8,10),Car('途觀',12,27)
>>>
>>> car1>car2
execute __lt__
False
>>> car1
execute __lt__
True
>>>
當自定義類中定義了__gt__方法,未定義__lt__方法時,進行”
>>> class Car():
def __init__(self,carname,oilcp100km, price):
self.carname,self.oilcp100km,self.price = carname,oilcp100km, price
def __gt__(self,other):
print("execute __gt__")
return self.price>other.price
>>> car1,car2,car3,car4 = Car('愛麗舍',8,10),Car('凱美瑞',7,27),Car('愛麗舍',8,10),Car('途觀',12,27)
>>> car1
execute __gt__
True
>>> car1>car2
execute __gt__
False
>>>
通過以上案例,我們知道當__lt__、__gt__方法都定義了時,“”分別調用__lt__和__gt__方法,當一個定義另一個未定義時,未定義的操作執行時會調用已經定義的方法求反。這個與__eq__和__ne__的關系還是有較大的不同。
總結
以上是生活随笔為你收集整理的python中lt方法_Python的富比较方法__lt__、__gt__之间的关联关系分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 深拷贝_Python之类的
- 下一篇: 实地审核和系统审核_在线监测系统运行情况