Pythonの豊富な比較方法__le __、__ ge__分析との関係

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

Pythonの豊富な比較方法は、__le__、__ge__それぞれ:以下は、以上で、対応する操作オペレータは、「<=」、「> =」。あなたはバリバリ通常の数を好きかどうかは、相互関係のようにこれらの2つの方法の間に存在するのですか?
Pythonはしない__le__、__ge__これらの2つの方法の必須の関係の間に何かを持っていますが、__le__と__ge__が逆数で推奨され、開発者はビジネスロジックに基づいて、自分たちのニーズを定義することができます。検証を分析してみましょう:

  1. カスタムクラスは、2つのメソッドを定義すると、「<=」、「> =」__le__ __ge__を呼び出すと方法。
  2. カスタムクラスは、メソッド__le__、未定義__ge__メソッドを定義するとき、「> =」比較__le__メソッドが呼び出されるが、否定リコール値です。ケース:
>>> 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('爱丽舍',8,10),Car('凯美瑞',7,27),Car('爱丽舍',8,10),Car('途观',12,27)
>>> 
>>> car1>=car2
execute __le__
False
>>> car1<=car2
execute __le__
True
>>>
  1. カスタムクラスは、メソッド__ge__、未定義__le__方法を定義したときに「<=」比較__ge__メソッドが呼び出されるが、否定リコール値です。ケース:
>>> 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('爱丽舍',8,10),Car('凯美瑞',7,27),Car('爱丽舍',8,10),Car('途观',12,27)
>>> car1<=car2
execute __ge__
True
>>> car1>=car2
execute __ge__
False
>>>

上記の例を通して、私たちはge__メソッドが定義されている場合__leは__、__、「<=」「> =」は時に未定義の他の未定義の定義、それぞれ__le__と__ge__メソッドを呼び出したときにことを知っていますメソッドを呼び出します。操作は実行中に否定定義されています。__eq__と__ne__まだかなり異なる、として__gt__ __lt__同じ関係とこの関係。

オールド猿Pythonは、古い猿でのPythonを学ぶ
ブログのアドレスをします。https://blog.csdn.net/LaoYuanPython

サポートしてください、親指をアップし、コメントや処理懸念!ありがとうございます!

おすすめ

転載: blog.csdn.net/LaoYuanPython/article/details/95219137