如何實現 Python __lt__ __gt__ 自定義(過載)運算子?
Python 具有用於定義運算元過載行為的 magic 方法。透過為 __lt__, __le__, __gt__, __ge__, __eq__ 和 __ne__ magic 方法提供定義,可以過載比較運算子(<、<=、>、>=、== 和 !=)。以下程式過載 < 和 > 運算子以比較距離類的物件。
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__ magic 方法的實現
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