首页 > 其他分享 >(第五篇)富比较__gt__、__ge__、__lt__、__le__、__eq__、__ne__

(第五篇)富比较__gt__、__ge__、__lt__、__le__、__eq__、__ne__

时间:2023-04-03 15:12:10浏览次数:37  
标签:__ p2 gt area self p1 lt other

摘要:这些方法被称为“富比较”方法,是因为它们可以用于实现同类对象进行“比较”。这些方法的触发机制是在实例对象之间进行比较时自动调用。例如,如果有两个实例对象a和b,当执行a < b时,Python会自动查找a的类定义中是否实现了__lt__方法,如果有,则调用该方法进行比较。

 

一、__gt__、__ge__

分别调用 >、>= 符号时触发

 

二、__lt__、__le__

分别调用 <、<= 时触发

 

三、__eq__、__ne__

分别调用 ==、!=时触发

 

四、示例

class Point(object):
    def __init__(self, x,y):
        self.x = x
        self.y = y

    def area(self):
        return self.x*self.y

    def __lt__(self, other):
        return self.area() < other.area()

    def __gt__(self, other):
        return self.area() > other.area()

    def __le__(self, other):
        return self.area() <= other.area()

    def __ge__(self, other):
        return self.area() >= other.area()

    def __eq__(self, other):
        return self.area() == other.area()

    def __ne__(self, other):
        return self.area() != other.area()

p1 = Point(2,2)
p2 = Point(1,1)

print(p1 < p2)   # True   ->print(p1.__lt__(p2))
print(p1 > p2)   # False
print(p1 <= p2)  # True
print(p1 >= p2)  # False
print(p1 == p2)  # False
print(p1 != p2)  # True

所以要想进行对象之间的比较,可以重新这些"富比较方法"。

标签:__,p2,gt,area,self,p1,lt,other
From: https://www.cnblogs.com/hechengQAQ/p/17283090.html

相关文章

  • 项目文档清单
    一、 需求阶段:《需求评审结果、意见》—需求评审会议纪要《需求说明书V2.0》—评审会修改意见修订履历二、 采购阶段:《合同》三、 详设部分:《项目计划》《详设说明书》四、 测试部门:《测试用例》《测试报告》五、 上线阶段:部署需求表资源需求表上线申请六、 验收......
  • 【Python】 pytest 之Hook函数 (钩子函数)
    Hook函数(钩子函数)钩子函数在pytest称之为Hook函数,它pytest框架的开发者,为了让用户更好的去扩展开发预留的一些函数。而预留的这些函数,在整个测试执行的生命周期中特定的阶段会自动去调用执行关于 pytest 中的预留钩子,可以通过开发插件,和在conftest.py去实现这些钩子......
  • 228
         ##@lcapp=leetcode.cnid=228lang=python3##[228]汇总区间##@lccode=startclassSolution:defsummaryRanges(self,nums:List[int])->List[str]:iflen(nums)<=0:return[]res=[str(nums[0])]......
  • Python 自动化指南(繁琐工作自动化)第二版:二、流程控制
    原文:https://automatetheboringstuff.com/2e/chapter2/所以,你知道单个指令的基本原理,程序就是一系列指令。但是编程的真正优势不仅仅是像周末跑腿一样一个接一个地运行指令。根据表达式的求值方式,程序可以决定跳过指令,重复指令,或者从几条指令中选择一条来运行。事实上,你几乎从......
  • 030 高阶导数求导之推导归纳法、公式法
    030高阶导数求导之推导归纳法、公式法......
  • Maven系列-两个技巧解决Maven速度慢的问题
    引言Maven已经成为当前最流行的项目管理、构建工具之一,如何高效的使用Maven显得十分重要。实际工作中,发现Maven存在以下两个场景很影响Maven使用效率:Maven仓库拉取速度缓慢Maven创建项目速度缓慢本文介绍两个技巧优化这两个问题。一、提高Maven下载速度Maven仓库拉取缓慢的问题主要......
  • Spark面试经典系列之数据倾斜解决方案的“银弹”是什么? 本节我们对Spark数据倾斜解决
    Spark面试经典系列之数据倾斜解决方案的“银弹”是什么?本节我们对Spark数据倾斜解决方案进行回顾和总结:1、   数据倾斜运行的症状和危害。如果发行数据倾斜,往往发现作业任务运行特别缓慢,出现OOM内存溢出等现象。2、   如果两个RDD进行操作,其中1个RDD数据不是那么多,我们把这......
  • 陶瓷气体放电管(GDT)关注四要点!
    在生活中,为为提高电子产品的可靠性、稳定性等,电子工程师们通常都会在电路中添加ESD防护器件产品来降低电子产品的辐射干扰及浪涌问题。对于陶瓷气体放电管的选型,我们有以下几项需注意:1.不能直接用在电源上进行差模保护; 2.击穿电压应大于线路上的最大信号频率电压;3.耐受电流不应......
  • anaconda 和 python 安装;jupyter 开发环境的使用
     1\anaconda和python安装1.操作系统:win7,配置环境时需要联网。2.anaconda安装anaconda下载地址:https://www.continuum.io/downloads/。根据电脑的操作系统位数,选择下载32位和64位的anaconda;安装anaconda到D:\anaconda文件夹下。3.配置环境python3.6运行“开始\所有......
  • Elasticsearch系列-Elasticsearch集群工作原理
    引言ELasticsearch作为一个分布式搜索引擎,能够出色地支持集群模式、动态水平扩容、故障转移等分布式系统特性,这是其作为全文搜索引擎首选的重要原因。本文从零开始描述集群的配置和扩容过程,让你对Elasticsearch集群的工作原理有初步的理解。首先,一个Elasticsearch集群时由多个节点......