如何在 Python 中重载比较运算符?
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 __ge__(self, other): in1=self.ft*12+self.inch in2=other.ft*12+other.inch if in1>=in2: return "first object greater than or equal to other" else: return "first object smaller 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)
上述程序的结果显示了 == 和 >= 比较运算符的重载使用
both objects are equal both objects are equal first object smaller than other
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP