首页 python基础教程 Python面向对象-内置方法(__eq__();__ne__();__gt__();__ge__();__lt__();__le__())实现对象大小比较
pay pay
教程目录

Python面向对象-内置方法(__eq__();__ne__();__gt__();__ge__();__lt__();__le__())实现对象大小比较

日期: 二月 13, 2023, 11:55 p.m.
栏目: python基础教程
阅读: 534
作者: Python自学网-村长

摘要: 对象也能实现类似于整型一样的大小比较,主要用于比较对象之间的大小,下面就通过重写类中的内置比较函数来实现这样的效果。

对象也能实现类似于整型一样的大小比较,主要用于比较对象之间的大小,下面就通过重写类中的内置比较函数来实现这样的效果。

class Child:
    def __init__(self, age, height):
        self.age = age
        self.height = height

    def __eq__(self, other):  # 等于
        print(other)
        return self.age == other.age

    def __ne__(self, other):  # 不等于
        print('不等于')
        return self.age != other.age

    def __gt__(self, other):  # 大于
        return self.age > other.age

    def __ge__(self, other):  # 大于等于
        return self.age >= other.age

    def __lt__(self, other):  # 小于
        return self.age < other.age

    def __le__(self, other):  # 小于等于
        return self.age <= other.age

创建两个对象来对比一下。

a1 = Child(22, 156)
a2 = Child(23, 164)
print(a1 == a2)
print(a1 != a2)

返回结果:

<__main__.Child object at 0x000000000232BE20>

False
不等于
True

这里要注意等于功能完善后不等于也就相应实现了,但是也可以单独去使用__ne__()去单独处理,通过比较运算符,把左边的值赋值给self,右边的赋值给other。有了>, ==, >=之后就可以通过下面的装饰器,同步实现<, !=, <=,反过来也是一样的,同时还能把>=拆分为>和=,<=拆分为<和=,反过来也能把<和=组合成<=。

 

部分文字内容为【Python自学网】原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
回顶部