Python:自定义比较运算符

本文介绍了如何在Python中为自定义对象实现完整的比较操作,包括使用`__lt__`, `__le__`, `__eq__`, `__ne__`, `__gt__` 和 `__ge__`等方法,以及如何通过`@functools.total_ordering`装饰器简化这个过程。" 124655421,13622781,MATLAB数值求解Volterra模型,"['MATLAB', '数值计算', '线性代数']
摘要由CSDN通过智能技术生成
#!/usr/bin/env python
# coding:UTF-8


"""
@version: python3.x
@author:曹新健
@contact: 617349013@qq.com
@software: PyCharm
@file: 自定义比较运算符(即定义Rich Comparison方法).py
@time: 2018/10/22 13:31
"""
'''
1、object类中定义了__lt__()、__le__()、__eq__()、__ne__()、__gt__()、__ge__()等方
   法,这组方法定义了对象之间可以使用<、<=、=、!=、>、>=比较结果,也就是python的
   Rich comprison方法(富比较或厚比较)。但由于object定义这些方法的局限性,
   实际使用时我们往往需要重新定义这些方法。例如:object定义的__eq__()用is两比较两
   个对象是否同一对象,并不是实质的相等性。
2、__ne__()会默认调用__eq__(),并对结果求反,因此定义了__eq__()就相当于定义了
   __ne__()
3、由于__lt__()与__ge__()互补,__le__()与__gt__()互补,故只需要定义__gt__()
和__ge__()
4、并不是每个对象都需要定义整组比较方法。如果真需要定义整组方法的行为,可以使用
   functools的total_ordering。当一个类被标注了@total_ordering时,必须实现__eq__(),
   并选择__lt__()、__le__()__gt__()、__ge__()其中一个方法实现
'''
f
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值