20比较类的一种内在逻辑

news2024/11/17 8:24:21

我们平时会直接在idle里面去写类似于

10>6,但是其实仔细思考一下,10和6是int的实例对象,感觉学逻辑真的比单纯学代码有用,参照之前的那个图,多去想一下逻辑其实真的很好!

python3其实是这样不支持的~(所以会报错)

class A:
    pass
a2 = A()
a1 = A()
print (a1 > a2)

这样其实就是一个正确的比较(会正常的输出false)

class Person:
    def __init__(self,age,height):
        self.age = age
        self.height = height
    # == != >= < <=
    def __eq__(self, other):
        print(other)
        return self.age == other.age
    pass
p1 = Person(19,100)
p2 = Person(18,190)
print(p1 == p2)

其余的一些比较方法

class Person:
    def __init__(self,age,height):
        self.age = age
        self.height = height
    # == != >= < <=
    def __eq__(self, other):
        print(other)
        return self.age == other.age
    pass
    def __ne__(self, other):
        print('***')
    def __ge__(self,other):
        pass
    def __it__(self,other):
        pass 



p1 = Person(19,100)
p2 = Person(18,190)
print(p1 != p2)

我感觉写的多了和听课听的多了,自己就已经会去思考内部的一些逻辑和思考一些事情了,比如这个

import functools
@functools.total_ordering
class Person:
    def __lt__(self,other):
        #pass
        print('lt')
    def __eq__(self,other):
        # pass
        print('eq')
    def __le__(self,other):
        print('le')
p1 =Person()
p2 = Person()
print(p1 <=p2)
print(Person.__dict__)

分析一下哦~最后比较的是p1<=p2。我在原始定义的时候如果定义了≤也就是__le__那么之前如果定义了<+=那么之前的就失效了,但是如果没有<=,拥有他的相反即>=那么,就不成立,只能单独运行前面的<和=

但是字典属性里,无论什么时候都会有小于等于和大于等于

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1082628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年9月Web3行业月度发展报告区块链篇 | 陀螺科技会员专享

9月是加密市场的活动月&#xff0c;斯坦福区块链周、Token2049等大型活动相继举办&#xff0c;后者更是创下超过1万人的历史最高纪录&#xff0c;成为了全球最大的Web3活动。在本次Token2049上&#xff0c;RWA、支付以及出入金成为了讨论度最多的活动。尽管活动如火如荼&#x…

Ps:画布大小

Ps菜单&#xff1a;图像/画布大小 Image/Canvas Size 快捷键&#xff1a;Ctrl Alt C 画布 Canvas是存放图像的容器&#xff0c;所以改变画布大小对原来的图像大小不会造成影响。除了画布大小 Canvas Size命令&#xff0c;画板工具、裁剪工具等也可以改变画布的大小&#xff…

金和OA C6任意文件读取漏洞 复现[附POC]

文章目录 金和OA C6任意文件读取漏洞 复现[附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 金和OA C6任意文件读取漏洞 复现[附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试…

无人机控制的研究现状及关键技术

无人机作为一种新型的航空器具&#xff0c;已经在军事、民用和科研等领域得到了广泛的应用。本文综述了无人机控制的研究现状及关键技术&#xff0c;包括无人机的应用领域、无人机的控制算法等方面。最后&#xff0c;对未来无人机控制的发展趋势进行了展望。 关键词&#xff1…

适用于Windows的远程传输大文件软件!

​AnyViewer可在设备之间快速的远程传输文件&#xff0c;并支持远程传输大文件&#xff0c;传输速度可达10MB/S&#xff0c;同时&#xff0c;还可以传输单个文件不超过1TB的文件&#xff0c;并它基于椭圆曲线加密&#xff08;ECC&#xff09;加密&#xff0c;可保护您的文件不被…

【AI】Interesting Applications

文章目录 【盘古】【嗜睡检测】【3D AI 生成】多模态——指哪打哪【AlphaDev&#xff1a;汇编版 AlphaZero】【ChatExcel】 【盘古】 2023年7月&#xff0c;华为正式发布盘古大模型3.0&#xff0c;并提出3层模型架构。 L0&#xff1a;基础大模型&#xff0c;包括自然语言、视觉…

Qt中常用容器组控件介绍和实操

目录 常用容器组控件(Containers)&#xff1a; 1.Group Box 2.Scroll Area 3.Tab Widget 4.Frame 5.Dock Widget 常用容器组控件(Containers)&#xff1a; 控件名称依次解释如下(常用的用红色标出&#xff09;: Group Box: 组合框: 提供带有标题的组合框框架Scroll Area…

【RabbitMQ 实战】11 队列的结构和惰性队列

一、 队列的结构 队列的组成&#xff1a; 队列由 rabbit_amgqueue_process 和 backing_queue两部分组成。rabbit_amqqueue_process负责协议相关的消息处理&#xff0c;即接收生产者发布的消息、向消费者交付消息、处理消息的确认 (包括生产端的 confirm 和消费端的 ack) 等。…

Android Studio Flutter真机调试错误

错误&#xff1a;Could not locate aapt. Please ensure you have the Android buildtools installed. No application found for TargetPlatform.android_arm64. Is your project missing an android/app/src/main/AndroidManifest.xml? Consider running "flutter crea…

Anaconda prompt中使用conda下载pytorch,一直卡在solving environment解决方案

关闭梯子 清空镜像源&#xff1a; conda config --remove-key channels 在pytorch官网找到对应的版本与命令&#xff1a;PyTorch conda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidia&#xff08;我的电脑CUDA版本为12.1.103&#xff0c;…

vscode 资源管理器移动到右边

目录 vscode 资源管理器移动到右边 vscode 资源管理器移动到右边 点击 文件》首选项》设置》工作台》外观》 找到这个配置下拉选择左右

【合集】Spring Cloud 组件——架构进化史话 Nacos,OpenFeign,Ribbon,Sentinel,Gateway . . .

前言 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具&#xff08;例如配置管理&#xff0c;服务发现&#xff0c;断路器&#xff0c;智能路由&#xff0c;微代理&#xff0c;控制总线&#xff0c;一次性令牌&#xff0c;全局锁&#xff0c;领导选举&…

文件上传 [MRCTF2020]你传你呢1

题目来源&#xff1a;buuctf [MRCTF2020]你传你&#x1f40e;呢1 打开题目 我们随便上传个木马文件上去 我们bp抓包看看

Linux Find 备忘清单

文章目录 引言一、入门1.1 简介1.2 命令用法 二、基本使用2.1 根据文件大小查找2.2 根据文件类型查找2.3 根据文件名查找2.4 指定搜索目录层级/深度2.5 根据权限查找2.6 根据属主/属组查找2.7 多个文件名2.8 多个目录2.9 根据时间戳查找 三、进阶使用3.1 查找和删除3.2 查找和移…

tomcat服务tomcat多实例部署

tomcat服务&&tomcat多实例部署 文章目录 tomcat服务&&tomcat多实例部署1.简介2.优缺点优点&#xff1a;缺点&#xff1a; 3.工作原理4.工作流程5.tomcat服务部署5.1.java环境安装5.2.拉取tomcat软件包5.3.解压部署5.4.启动tomcat服务5.5.访问tomcat的web页面5.…

java 常量、变量、数据类型

常量 * 指在程序执行期间其值不能发生变化的数据。例如数学中的π 3.1415……又如&#xff1a;整数123&#xff0c;小 数1.23&#xff0c;字符’A’&#xff0c;布尔常量 true、false等&#xff0c;程序开发中&#xff0c;常量名一般规则全部大写&#xff0c;声明常量时必 须赋…

排序算法-希尔排序法(ShellSort)

排序算法-希尔排序法&#xff08;ShellSort&#xff09; 1、说明 我们知道当原始记录的键值大部分已排好序的情况下插入排序法非常有效&#xff0c;因为它不需要执行太多的数据搬移操作。希尔排序法是D.L.Shell在1959年7月发明的一种排序法&#xff0c;可以减少插入排序法中数…

tomcat 问题

一、start up.bat 闪退 在命令窗口run 看看是缺少了哪个环境变量 二、控制台输出乱码 logging.properties 底部添加 java.util.logging.ConsoleHandler.encoding GBK 三、缓存不足 context.xml配置 <Resources cachingAllowed"false" cacheMaxSize"100…

从字节码文件理解 ++i 和 i++ 的区别_i++ 与 ++i 底层

jvm内存模型 jvm 内存模型&#xff1a;Java 代码是运行在 Java 虚拟机之上的&#xff0c;由 Java 虚拟机通过解释执行 (解释器)或编译执行 (即时编译器) 来完成&#xff0c;故 Java 内存模型&#xff0c;也就是指 Java 虚拟机的运行时内存模型。 运行时内存模型&#xff0c;分…

【2023集创赛】安谋科技杯二等奖作品: 智能体感游戏机

本文为2023年第七届全国大学生集成电路创新创业大赛&#xff08;“集创赛”&#xff09;安谋科技杯二等奖作品分享&#xff0c;参加极术社区的【有奖征集】分享你的2023集创赛作品&#xff0c;秀出作品风采&#xff0c;分享2023集创赛作品扩大影响力&#xff0c;更有丰富电子礼…