本文實(shí)例為大家分享了python類(lèi)支持比較運(yùn)算的具體代碼,供大家參考,具體內(nèi)容如下
案例:
有時(shí)我們希望自定義的類(lèi),實(shí)例間可以使用比較運(yùn)算符進(jìn)行比較,我們自定義比較的行為。
需求:
有一個(gè)矩形的類(lèi),我們希望比較兩個(gè)矩形的實(shí)例時(shí),比較的是他們的面積
如何解決這個(gè)問(wèn)題?
在類(lèi)中重新定義比較運(yùn)算符,所有的比較運(yùn)算可以簡(jiǎn)化為兩個(gè)基本的比較運(yùn)算,小于和等于比較
單個(gè)類(lèi)比較
#!/usr/bin/python3 from math import pi class Circle(object): def __init__(self, radius): self.radius = radius def get_area(self): return round(pow(self.radius, 2) * pi, 2) # 重定義小于比較 def __lt__(self, other): return self.get_area() < other.get_area() # 重定義等于比較 def __eq__(self, other): return self.get_area() == other.get_area() if __name__ == '__main__': c1 = Circle(3.0) c2 = Circle(5.0) print(c1 < c2) # c1.__le__(c2) print(c1 == c2) # c1.__eq__(c2)