HSP_13章 Python_魔术方法

文章目录

  • P132 魔术方法
      • 1. 魔术方法的基本介绍
      • 2. 常见的魔术方法
        • 2.1 __str__
        • 2.2 __eq__
        • 2.3 其它的几个魔术方法

P132 魔术方法

  • 参考文档

1. 魔术方法的基本介绍

在这里插入图片描述

2. 常见的魔术方法

在这里插入图片描述

2.1 str

在这里插入图片描述

# 请输出Monster[name,job,sal]对象的属性信息
#可以根据需要重写__str__
class Monster:def __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = gender"""说明:1. 在默认情况下,调用的是父类Object的__str__2. 父类Object的__str__返回的就是类型+地址3. 可以根据需要重写__str__"""def __str__(self):return f"{self.name}, {self.age}, {self.gender}"m = Monster("青牛怪", 500, '男')print(m) #默认输出类型+对象的地址
2.2 eq
  • 基本介绍
    在这里插入图片描述
  • 应用实例
    在这里插入图片描述
# 代码演示
# 原代码class Person:name = Noneage = Nonegender = Nonedef __init__(self, name, age, gender):self.name = nameself.age = age# 没有重写__eq__ 前,== 比较的是内存地址
p1 = Person("smith",20,"男")
p2 = Person("smith",20,"男")print(f"p1==p2: {p1 == p2}")

在这里插入图片描述

# 代码演示
# 代码改进# 代码演示class Person:name = Noneage = Nonegender = Nonedef __init__(self, name, age, gender):self.name = nameself.age = ageself.gender =gender# 判断两个Person对象的内容是否相等,# 如果两个Person对象的各个属性值都一样,则返回true,反之falsedef __eq__(self, other):# 判街other是不是Personif isinstance(other,Person):return self.name == other.name and \self.age == other.age and \self.gender == other.genderreturn Falseclass Dog:name = Noneage = Nonegender = Nonedef __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = gender# 没有重写__eq__ 前,== 比较的是内存地址
p1 = Person("smith", 20, "男")
p2 = Person("smith", 20, "男")dog = Dog("smith", 20, "男")print(f"p1==p2: {p1 == p2}") # T
print(f"p1==p2: {dog == p2}")  # T
2.3 其它的几个魔术方法
# 代码演示class Person:name = Noneage = Nonegender = Nonedef __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = gender# 判断两个Person对象的内容是否相等,# 如果两个Person对象的各个属性值都一样,则返回true,反之falsedef __eq__(self, other):# 判街other是不是Personif isinstance(other, Person):return self.name == other.name and \self.age == other.age and \self.gender == other.genderreturn False# 重写__lt__def __lt__(self, other):# 判街other是不是Personif isinstance(other, Person):return self.age < other.agereturn "类型不一致,不能比较"# 重写__le__def __le__(self, other):# 判街other是不是Personif isinstance(other, Person):return self.age <= other.agereturn "类型不一致,不一致"# 重写__ne__def __ne__(self, other):return not self.__eq__(other)class Dog:name = Noneage = Nonegender = Nonedef __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = gender# 没有重写__eq__ 前,== 比较的是内存地址
p1 = Person("smith", 20, "男")
p2 = Person("smith", 20, "男")dog = Dog("smith", 20, "男")# # 重写__eq__ 前,== 比较的是内容和属性
# print(f"p1==p2: {p1 == p2}")  # T
# print(f"p1==p2: {dog == p2}")  # Tprint(f"p1 < p2 {p1 < p2}")
print(f"p1 <= p2 {p1 <= p2}")

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

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

相关文章

竞赛选题 交通目标检测-行人车辆检测流量计数 - 竞赛选题

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

OtterTune dead,参数调优还有DBdoctor

前言 数据库性能调优这块必不可少的环节是进行参数调优&#xff0c;数据库的参数很多&#xff0c;比如Oracle甚至有上千个参数&#xff0c;如何进行参数设置非常关键。参数调优需要基于业务的负载模型、硬件配置等多种因素&#xff0c;好的参数调优可以让数据库性能整体吞吐提…

植物大战僵尸杂交版,最新安装包(PC+手机+苹果)+ 修改器+高清工具

植物大战僵尸杂交版&#xff1a;全新游戏体验与创意碰撞 游戏简介 《植物大战僵尸杂交版》是由B站知名UP主潜艇伟伟迷基于经典游戏《植物大战僵尸》进行的一次大胆且富有创意的二次创作。这款游戏不仅保留了原版游戏的经典玩法&#xff0c;还融入了植物杂交的全新概念&#x…

Qt扫盲-QRect矩形描述类

QRect矩形描述总结 一、概述二、常用函数1. 移动类2. 属性函数3. 判断4. 比较计算 三、渲染三、坐标 一、概述 QRect类使用整数精度在平面中定义一个矩形。在绘图的时候经常使用&#xff0c;作为一个二维的参数描述类。 一个矩形主要有两个重要属性&#xff0c;一个是坐标&am…

同步互斥与通信

目录 一、同步与互斥的概念 二、同步与互斥并不简单 三、各类方法的对比 一、同步与互斥的概念 一句话理解同步与互斥&#xff1a;我等你用完厕所&#xff0c;我再用厕所。 什么叫同步&#xff1f;就是&#xff1a;哎哎哎&#xff0c;我正在用厕所&#xff0c;你等会。 什…

【实战场景】记一次UAT jvm故障排查经历

【实战场景】记一次UAT jvm故障排查经历 开篇词&#xff1a;干货篇&#xff1a;1.查看系统资源使用情况2.将十进制进程号转成十六进制3.使用jstack工具监视进程的垃圾回收情况4.输出指定线程的堆内存信息5.观察日志6.本地环境复现 总结篇&#xff1a;我是杰叔叔&#xff0c;一名…

线下促销折扣视频介绍

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

什么是定时器?

前言&#x1f440;~ 上一章我们介绍了阻塞队列以及生产者消息模式&#xff0c;今天我们来讲讲定时器 定时器 标准库中的定时器 schedule()方法 扫描线程 手动实现定时器 任务类 存储任务的数据结构 定时器类 如果各位对文章的内容感兴趣的话&#xff0c;请点点小赞&am…

【Python】列表

目录 一、列表的概念 二、列表的创建 1.变量名 [ ] ..... 2.通过Python内置 的I ist类的构造函数来创建列表 三、操作列表元素的方法 1. 修改 2. 增加元素 3. 删除 4. 其他操作 四、遍历列表 五、列表排序 六、列表切片&#xff08;list slicing&#xff09; 七、…

值得细读的8个视觉大模型生成式预训练方法

作者&#xff1a;vasgaowei&#xff08;已授权原创&#xff09; 编辑: AI生成未来 链接&#xff1a;https://zhuanlan.zhihu.com/p/677794719 大语言模型的进展催生出了ChatGPT这样的应用&#xff0c;让大家对“第四次工业革命”和“AGI”的来临有了一些期待&#xff0c;也作为…

Linux基础指令介绍与详解——原理学习

前言&#xff1a;本节内容标题虽然为指令&#xff0c;但是并不只是讲指令&#xff0c; 更多的是和指令相关的一些原理性的东西。 如果友友只想要查一查某个指令的用法&#xff0c; 很抱歉&#xff0c; 本节不是那种带有字典性质的文章。但是如果友友是想要来学习的&#xff0c;…

深入浅出:npm常用命令详解与实践【保姆级教程】

大家好,我是CodeQi! 在我刚开始学习前端开发的时候,有一件事情让我特别头疼:管理和安装各种各样的依赖包。 那时候,我还不知道 npm 的存在,手动下载和管理这些库简直是噩梦。 后来,我终于接触到了 npm(Node Package Manager),它不仅帮我解决了依赖管理问题,还让我…

Python深度理解系列之【排序算法——冒泡排序】

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️木道寻的主页 文章目录 &#x1f525;前言&#x1f680;冒泡排序python实现算法实现图形化算法展示 ⭐️⭐️⭐️总结 &#x1f525;前…

Apache POI、EasyPoi、EasyExcel

目录 ​编辑 &#xff08;一&#xff09;Apache PoI 使用 &#xff08;二&#xff09;EasyPoi使用 &#xff08;三&#xff09;EasyExcel使用 写 读 最简单的读​ 最简单的读的excel示例​ 最简单的读的对象​ &#xff08;一&#xff09;Apache PoI 使用 &#xff08;二&…

Git 安装

目录 Git 安装 Git 安装 在使用 Git 前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac 和 Windows 平台上运行。Git 各平台安装包下载地址为&#xff1a;http://git-scm.com/downloads 在 Linux 平台上安装&#xff08;包管理工具安装&#xff09; 首先&#xff0…

IIS在Windows上的搭建

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 目录 一 概念&#xff1a; 二网络…

深入理解C++中的锁

目录 1.基本互斥锁&#xff08;std::mutex&#xff09; 2.递归互斥锁&#xff08;std::recursive_mutex&#xff09; 3.带超时机制的互斥锁&#xff08;std::timed_mutex&#xff09; 4.带超时机制的递归互斥锁&#xff08;std::recursive_timed_mutex&#xff09; 5.共享…

【python脚本】批量检测sql延时注入

文章目录 前言批量检测sql延时注入工作原理脚本演示 前言 SQL延时注入是一种在Web应用程序中利用SQL注入漏洞的技术&#xff0c;当传统的基于错误信息或数据回显的注入方法不可行时&#xff0c;例如当Web应用进行了安全配置&#xff0c;不显示任何错误信息或敏感数据时&#x…

【TS】TypeScript 原始数据类型深度解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 原始数据类型深度解析一、引言二、基础原始数据类型2.1 boolean2.2 …

苍穹外卖--sky-take-out(四)10-12

苍穹外卖--sky-take-out&#xff08;一&#xff09; 苍穹外卖--sky-take-out&#xff08;一&#xff09;-CSDN博客​编辑https://blog.csdn.net/kussm_/article/details/138614737?spm1001.2014.3001.5501https://blog.csdn.net/kussm_/article/details/138614737?spm1001.2…