当前位置: 首页 > news >正文

python常见的魔术方法

什么是魔术方法

Python类的内置方法,各自有各自的特殊功能,被称之为魔术方法

常见的魔术方法有以下:

__init__:构造方法
__str__:字符串方法
__lt__:小于、大于符号比较
__le__:小于等于、大于等于符合比较
__eq__:等于符合比较

__init__

class Student:def __init__(self,name,age):self.name = nameself.age = age

负责创建对象时初始化对象,给成员变量赋值初始值

调用:

if __name__ == '__main__':stu = Student('yohoo', 27)print(stu.name)print(stu.age)

结果:

在这里插入图片描述

__str__

如果没有__str__方法,打印类的对象是内存地址

if __name__ == '__main__':stu = Student('yohoo', 27)print(stu)print(str(stu))

结果:

在这里插入图片描述

当添加__str__方法

整体代码:

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):return "我是%s,我的年龄是%d" % (self.name, self.age)if __name__ == '__main__':stu = Student('yohoo', 27)print(stu)print(str(stu))

结果:

在这里插入图片描述

__lt__

如果没有__lt__不能直接对两个对象进行小于大于的比较

在这里插入图片描述

如果添加此魔术方法,other参数表示的另一个对象

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __lt__(self, other):return self.age < other.ageif __name__ == '__main__':stu1 = Student('yohoo', 27)stu2 = Student('zz', 29)print(stu1 < stu2)print(stu1 > stu2)

结果:

在这里插入图片描述

____le__

与上面__lt__类似,le是针对小于等于或者大于等于

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __le__(self, other):return self.age <= other.ageif __name__ == '__main__':stu1 = Student('yohoo', 27)stu2 = Student('zz', 29)print(stu1 <= stu2)print(stu1 >= stu2)

结果:

在这里插入图片描述

__eq__

和上面类似,eq是针对等于

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __eq__(self, other):return self.age == other.ageif __name__ == '__main__':stu1 = Student('yohoo', 29)stu2 = Student('zz', 29)print(stu1 == stu2)

结果:

在这里插入图片描述

相关文章:

python常见的魔术方法

什么是魔术方法 Python类的内置方法&#xff0c;各自有各自的特殊功能&#xff0c;被称之为魔术方法 常见的魔术方法有以下&#xff1a; __init__:构造方法 __str__:字符串方法 __lt__:小于、大于符号比较 __le__:小于等于、大于等于符合比较 __eq__:等于符合比较__init__ c…...

自动化测试常用函数:弹窗、等待、导航、上传与参数设置

目录 一、弹窗 1. 警告弹窗确认弹窗 2. 提示弹窗 二、等待 1. 强制等待 2. 隐式等待 3. 显示等待 三、浏览器导航 1. 打开网站 2. 浏览器的前进、后退、刷新 四、文件上传 五、浏览器参数设置 1. 设置无头模式 2. 页面加载策略 一、弹窗 弹窗是在页面是找不到任何…...

【必看】2024国赛选题分布情况分析及数模国赛答辩指南~答辩不走弯路

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 紧张刺激的数模国赛已经过去一段时间&#xff0c;各赛区的成绩发布也在陆续进…...

微服务注册中⼼1

1. 微服务的注册中⼼ 注册中⼼可以说是微服务架构中的”通讯录“ &#xff0c;它记录了服务和服务地址的映射关系。在分布式架构中&#xff0c; 服务会注册到这⾥&#xff0c;当服务需要调⽤其它服务时&#xff0c;就这⾥找到服务的地址&#xff0c;进⾏调⽤。 1.1 注册中⼼的…...

我设置了路由器自动切换ip,这会让我的账号登录地址经常改变吗

是的&#xff0c;路由器设置自动切换IP可能会导致你的账号登录地址经常改变。 这是因为当路由器切换IP时&#xff0c;外部网络所看到的你的设备IP地址也会随之改变。对于很多跨境电商、社交媒体或者银行账户等需要较高安全性的系统来说&#xff0c;经常变动的IP地址可能会被视…...

Nginx 限流实战教程和技巧

Nginx限流是一种重要的技术手段&#xff0c;用于保护服务器资源&#xff0c;防止因过度请求而导致的服务不可用。以下是一个详细的Nginx限流教程&#xff0c;包括限流原理、常用模块和配置示例。 一、Nginx限流原理 Nginx限流主要基于两种算法&#xff1a;漏桶算法和令牌桶算…...

AlphaFold3 | 详解 AlphaFold3 的模型结构及其在不同类型的预测实验中的表现

Jumper 本文将介绍 24 年 5 月发布的 Alaphafold3&#xff0c;其以“使用 AlphaFold 3 进行生物分子相互作用的精确结构预测”为标题发表在《nature》上&#xff0c;通讯作者为 Jumper。 Jumper 具有物理、化学、生物和计算方面的丰富背景。Jumper 本科学的是物理和数学&#…...

公交IC卡收单管理系统 多处 SQL注入致RCE漏洞复现

0x01 产品简介 公交IC卡收单管理系统是城市公共交通领域中不可或缺的一部分,它通过集成先进的集成电路技术(IC卡)实现了乘客便捷的支付方式,并有效提高了公共交通运营效率。系统集成了发卡、充值、消费、数据采集、查询和注销等多个功能模块,为公交公司和乘客提供了全面、…...

淘客系统开发之卷轴模式系统源码功能分析

随着互联网技术的快速发展&#xff0c;电商行业不断创新&#xff0c;探索更加高效、有趣的用户参与机制。其中&#xff0c;卷轴模式作为一种新兴的商业模式&#xff0c;以其独特的积分兑换和任务系统&#xff0c;在淘客系统开发中得到了广泛应用。本文将从技术角度&#xff0c;…...

MoCo中的字典

在 MoCo&#xff08;Momentum Contrast&#xff09;中&#xff0c;字典&#xff08;dictionary&#xff09;是一个核心组件&#xff0c;用于存储负样本&#xff08;negative samples&#xff09;的特征表示&#xff08;key&#xff09;。这个字典的设计使得 MoCo 可以高效地利用…...

Xcode16 iOS18 编译问题适配

问题1&#xff1a;ADClient编译报错问题 报错信息 Undefined symbols for architecture arm64:"_OBJC_CLASS_$_ADClient", referenced from:in ViewController.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit co…...

加密解密的艺术:探索Java中的DES算法

目录 1. 引言 2. DES算法简介 3. Java中的DES实现 4. 代码解析 5. 安全性考量 1. 引言 在数字化时代&#xff0c;数据安全变得至关重要。无论是个人隐私还是企业机密&#xff0c;都需要强有力的保护措施。今天&#xff0c;我们将探讨一种经典的数据加密技术——DES&#…...

jQuery——层次选择器

1、层次选择器&#xff1a;查找子元素&#xff0c;后代元素&#xff0c;兄弟元素的选择器。 ancestor descendant&#xff1a;在给定的祖先元素下匹配所有的后代元素 parent > child&#xff1a;在给定的父元素下匹配所有的子元素 prev next&#xff1a;匹配所有紧接在…...

MySQL常见面试总结

MySQL基础 什么是关系型数据库&#xff1f; 顾名思义&#xff0c;关系型数据库&#xff08;RDB&#xff0c;Relational Database&#xff09;就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系&#xff08;一对一、一对多、多对多&…...

记录一次学习--委派攻击学习

目录 为什么要使用委派 什么账号可以使用委派 非约束性委派 这里有一张图 利用 流程 约束性委派 这里有一张图 如何利用 条件 具体流程 为什么要使用委派 这个是因为可能A服务需要B服务的支持&#xff0c;但是A服务的权限不可以使用B服务。然后这时就可以让域用户将…...

前端列表数据太多导致页面卡顿就这么处理

前端列表数据太多页面卡顿就这么处理 实际场景什么是虚拟列表虚拟列表实现原理实战中虚拟列表的问题及相应解决方案 实际场景 首先看以下两个实际场景&#xff1a; 场景一&#xff1a;有一个数据列表&#xff0c;数据量非常大且每一个数据项都有几十列甚至更多&#xff0c;且后…...

机器学习_神经网络_深度学习

【神经网络——最易懂最清晰的一篇文章 - CSDN App】https://blog.csdn.net/illikang/article/details/82019945?type=blog&rId=82019945&refer=APP&source=weixin_45387165 参考以上资料,可对神经网络有初步了解。接下来可参考书籍等投身实际项目中使用。 书…...

MT6765/MT6762(R/D/M)/MT6761(MT8766)安卓核心板参数比较_MTK联发科4G智能模块

联发科Helio P35 MT6765安卓核心板 MediaTek Helio P35 MT6765是智能手机的主流ARM SoC&#xff0c;于2018年末推出。它在两个集群中集成了8个ARM Cortex-A53内核&#xff08;big.LITTLE&#xff09;。四个性能内核的频率高达2.3GHz。集成显卡为PowerVR GE8320&#xff0c;频率…...

TikTok五分钟开户快速步骤流程!

1、注册您的账户 首先&#xff0c;访问TikTok广告管理器的注册页面&#xff08;https://ads.tiktok.com/i18n/signup/&#xff09;以创建账户。您可以选择使用电子邮件或手机号码进行注册。输入您的电子邮件和密码后&#xff0c;您需要同意TikTok的广告条款&#xff0c;然后点击…...

BFS 解决拓扑排序 , 课程表 , 课程表 II , 火星词典

文章目录 拓扑排序简介1.有向无环图&#xff08;DAG图&#xff09;2.AOV网&#xff1a;顶点活动图3.拓扑排序4.实现拓扑排序 207. 课程表210. 课程表 IILCR 114. 火星词典 拓扑排序简介 1.有向无环图&#xff08;DAG图&#xff09; 像这样只能从一个点到另一个点有方向的图&a…...

web安全攻防渗透测试实战指南_web安全攻防渗透测试实战指南,零基础入门到精通,收藏这一篇就够了

1. Nmap的基本 Nmap ip 6 ip Nmap -A 开启操作系统识别和版本识别功能 – T&#xff08;0-6档&#xff09; 设置扫描的速度 一般设置T4 过快容易被发现 -v 显示信息的级别&#xff0c;-vv显示更详细的信息 192.168.1.1/24 扫描C段 192.168.11 -254 上 nmap -A -T4 -v -i…...

大模型如何赋能智慧城市新发展?

国家数据局近期发布的《数字中国发展报告&#xff08;2023&#xff09;》显示&#xff0c;我国数据要素市场化改革步伐进一步加快&#xff0c;数字经济规模持续壮大&#xff0c;数字技术应用场景不断拓展。这一成就的背后是数字技术广泛应用&#xff0c;数字技术不仅影响着老百…...

随记——机器学习

前言 本来有个500块钱的单子&#xff0c;用机器学习做一个不知道什么鸟的识别&#xff0c;正好有数据集&#xff0c;跑个小项目&#xff0c;过一下机器学习图像识别的流程&#xff0c;用很短的时间记录下来..... 一、数据预处理 将数据集分为训练集和测试集&#xff0c;直接…...

【在Linux世界中追寻伟大的One Piece】进程间通信

目录 1 -> 进程间通信介绍 1.1 -> 进程间通信目的 1.2 -> 进程间通信发展 1.3 -> 进程间通信分类 1.3.1 -> 管道 1.3.2 -> System V IPC 1.3.3 -> POSIX IPC 2 -> 管道 2.1 -> 什么是管道 2.2 -> 匿名管道 2.3 -> 实例代码 2.4 -…...

多路复用IO

一。进程处理多路IO请求 在没有多路复用IO之前&#xff0c;对于多路IO请求&#xff0c;一般只有阻塞与非阻塞IO两种方式 1.1 阻塞IO 需要结合多进程/多线程&#xff0c;每个进程/线程处理一路IO 缺点&#xff1a;客户端越多&#xff0c;需要创建的进程/线程越多&#xff0c…...

C++ prime plus-7-編程練習

1&#xff0c; #include <iostream>// 函数声明 double harmonicMean(double x, double y);int main() {double x, y, result;while (true) {std::cout << "请输入两个数&#xff08;其中一个为0时结束&#xff09;: ";std::cin >> x >> y;…...

计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果

我们写这道题的时候需要俩变量接受&#xff0c;一个总数一个分母&#xff0c;我们发现分母变化是有规律的从1~100循环。 #include<stdio.h> int main() {int i 0;int tag 1;double sum 0.0;for (i 1; i < 101; i){if (i % 2 0){sum sum - 1.0 / i;}else{sum s…...

Linux本地服务器搭建开源监控服务Uptime Kuma与远程监控实战教程

文章目录 前言**主要功能**一、前期准备本教程环境为&#xff1a;Centos7&#xff0c;可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务&#xff0c;如何安装Docker详见&#xff1a; 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址…...

JS 历史简介

目录 1. JS 历史简介 2. JS 技术特征 1. JS 历史简介 举例&#xff1a;在提交用户的注册信息的时候&#xff0c;为避免注册出现错误后重新填写信息&#xff0c;可以在写完一栏信息后进行校验&#xff0c;并提示是否出现错误&#xff0c;这样会大大提高用户提交的成功率&…...

爬虫逆向学习(七):补环境动态生成某数四代后缀MmEwMD

声明&#xff1a;本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录 前言 这篇文章主要是研究如何动态生成后缀参数MmEwMD的&#xff0c;它是在文章爬虫逆向学习(六)&#xff1a;补环境过某数四代的基础上进行研究的&#xff0c;代码也是在它基础上增…...