面向對象高階-11運算符重載

經常使用類的運算符

__gt__
大於
__lt__
小於
__eq__
等於python

!!!注意

運算符遠不止這些!!!!!能夠再object類中進行查看!!
當咱們在使用某個符號時,python解釋器都會爲這個符號定義一個含義,同時調用對應的處理函數, 當咱們須要自定義對象的比較規則時,就可在子類中覆蓋 大於 等於 等一系列方法....函數

案例:

本來自定義對象沒法直接使用大於小於來進行比較 ,咱們可自定義運算符來實現,讓自定義對象也支持比較運算符code

class Student(object):
    def __init__(self,name,height,age):
        self.name = name
        self.height = height
        self.age = age

    def __gt__(self, other):
        # print(self)
        # print(other)
        # print("__gt__")
        return self.height > other.height
    
    def __lt__(self, other):
        return self.height < other.height

    def __eq__(self, other):
        if self.name == other.name and  self.age == other.age and self.height == other.height:
            return True
        return False

stu1 = Student("jack",180,28)
stu2 = Student("jack",180,28)
# print(stu1 < stu2)
print(stu1 == stu2)

Ps:

上述代碼中,other指的是另外一個參與比較的對象,
大於和小於只要實現一個便可,符號若是不一樣 解釋器會自動交換兩個對象的位置對象

相關文章
相關標籤/搜索