#!/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
Python:自定义比较运算符
最新推荐文章于 2023-07-11 06:00:00 发布
本文介绍了如何在Python中为自定义对象实现完整的比较操作,包括使用`__lt__`, `__le__`, `__eq__`, `__ne__`, `__gt__` 和 `__ge__`等方法,以及如何通过`@functools.total_ordering`装饰器简化这个过程。"
124655421,13622781,MATLAB数值求解Volterra模型,"['MATLAB', '数值计算', '线性代数']
摘要由CSDN通过智能技术生成