本文實(shí)例為大家分享了python類(lèi)支持比較運(yùn)算的具體代碼,供大家參考,具體內(nèi)容如下
成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)平輿,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108案例:
有時(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)