Python具有神奇的方法来定义运算符的重载行为。比较运算符(,> =,==和!=)可以通过为__lt __,__ le __,__ gt __,__ ge __,__ eq__和__ne__魔术方法提供定义来重载。遵循程序重载运算符以比较距离类的对象。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
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
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
d5=distance(3,11)
d6=distance()
print(d5
结果显示了__lt__和_gt__魔术方法的实现first object not greater than other
first object not smaller than other
first object smaller than other