如何實現 Python __lt__ __gt__ 自定義(過載)運算子?
Python 擁有魔法方法來定義運算子的過載行為。可以透過為 __lt__、__le__、__gt__、__ge__、__eq__ 和 __ne__ 魔法方法提供定義來過載比較運算子(<、<=、>、>=、== 和 !=)。以下程式過載 < 和 > 運算子來比較 distance 類的物件。
class distance: def __init__(self, x=5,y=5): self.ft=x self.inch=y def __eq__(self, other): if self.ft==other.ft and self.inch==other.inch: return "both objects are equal" else: return "both objects are not equal" def __lt__(self, other): in1=self.ft*12+self.inch in2=other.ft*12+other.inch if in1<in2: return "first object smaller than other" else: return "first object not smaller than other" def __gt__(self, other): in1=self.ft*12+self.inch in2=other.ft*12+other.inch if in1<in2: return "first object greater than other" else: return "first object not greater than other" d1=distance(5,5) d2=distance() print (d1>d2) d3=distance() d4=distance(6,10) print (d1<d2) d5=distance(3,11) d6=distance() print(d5<d6)
結果展示了 __lt__ 和 _gt__ 魔法方法的實現
first object not greater than other first object not smaller than other first object smaller than other
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP