=”。那么是否象普通數(shù)字運(yùn)算一樣,這兩個(gè)方法之間存在互反的關(guān)系呢?Python沒(méi)有對(duì)__le__、__ge__這兩個(gè)方法之間有什么強(qiáng)制關(guān)系,但建議__le__和__ge__為互反,開(kāi)發(fā)者完全可以根據(jù)業(yè)務(wù)邏輯的需要自己定義。我們來(lái)進(jìn)行分析驗(yàn)證:當(dāng)自定義類(lèi)中兩個(gè)方法都定義了時(shí),“<=”、“>=”分別調(diào)用__le__和__ge__方法;當(dāng)自定義類(lèi)" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python的富比較方法__le__、__ge__之間的關(guān)聯(lián)關(guān)系分析

系統(tǒng) 1675 0

Python的富比較方法包括 __le__、__ge__ 分別表示:小于等于、大于等于,對(duì)應(yīng)的操作運(yùn)算符為:“<=”、“>=”。那么是否象普通數(shù)字運(yùn)算一樣,這兩個(gè)方法之間存在互反的關(guān)系呢?
Python沒(méi)有對(duì) __le__、__ge__ 這兩個(gè)方法之間有什么強(qiáng)制關(guān)系,但建議__le__和__ge__為互反,開(kāi)發(fā)者完全可以根據(jù)業(yè)務(wù)邏輯的需要自己定義。我們來(lái)進(jìn)行分析驗(yàn)證:

  1. 當(dāng)自定義類(lèi)中兩個(gè)方法都定義了時(shí),“<=”、“>=”分別調(diào)用__le__和__ge__方法;
  2. 當(dāng)自定義類(lèi)中定義了__le__方法,未定義__ge__方法時(shí),進(jìn)行”>=”比較也是調(diào)用__le__方法,只是對(duì)調(diào)用值求反。案例:
            
              >>> class Car():
   def __init__(self,carname,oilcp100km, price):
       self.carname,self.oilcp100km,self.price = carname,oilcp100km, price
   
   def __le__(self,other):
       print("execute __le__")
       return self.price<=other.price
 >>> 
>>> car1,car2,car3,car4 = Car('愛(ài)麗舍',8,10),Car('凱美瑞',7,27),Car('愛(ài)麗舍',8,10),Car('途觀',12,27)
>>> 
>>> car1>=car2
execute __le__
False
>>> car1<=car2
execute __le__
True
>>>

            
          
  1. 當(dāng)自定義類(lèi)中定義了__ge__方法,未定義__le__方法時(shí),進(jìn)行”<=”比較也是調(diào)用__ge__方法,只是對(duì)調(diào)用值求反。案例:
            
              >>> class Car():
   def __init__(self,carname,oilcp100km, price):
       self.carname,self.oilcp100km,self.price = carname,oilcp100km, price
   
     def __ge__(self,other):
       print("execute __ge__")
       return self.price>=other.price

>>> car1,car2,car3,car4 = Car('愛(ài)麗舍',8,10),Car('凱美瑞',7,27),Car('愛(ài)麗舍',8,10),Car('途觀',12,27)
>>> car1<=car2
execute __ge__
True
>>> car1>=car2
execute __ge__
False
>>>

            
          

通過(guò)以上案例,我們知道當(dāng)__le__、__ge__方法都定義了時(shí),“<=”、“>=”分別調(diào)用__le__和__ge__方法,當(dāng)一個(gè)定義另一個(gè)未定義時(shí),未定義的操作執(zhí)行時(shí)會(huì)調(diào)用已經(jīng)定義的方法求反。這個(gè)與__eq__和__ne__的關(guān)系還是有較大的不同,與__lt__和__gt__的關(guān)系一樣。

老猿Python,跟老猿學(xué)Python!
博客地址:https://blog.csdn.net/LaoYuanPython
請(qǐng)大家多多支持,點(diǎn)贊、評(píng)論和加關(guān)注!謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!??!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 磐石市| 辽源市| 海南省| 滨州市| 黄山市| 龙井市| 民丰县| 襄汾县| 泗阳县| 永仁县| 孝昌县| 聊城市| 青浦区| 白沙| 齐河县| 湘阴县| 绥芬河市| 礼泉县| 灌云县| 上高县| 嘉义市| 东丽区| 福州市| 广元市| 醴陵市| 梅河口市| 霍邱县| 平塘县| 巫溪县| 江陵县| 陆良县| 上蔡县| 灵川县| 长治市| 江安县| 莲花县| 嘉峪关市| 平阴县| 灌南县| 会宁县| 阜南县|