当前位置: 首页 > 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)

结果:

在这里插入图片描述

http://www.lryc.cn/news/446913.html

相关文章:

  • 自动化测试常用函数:弹窗、等待、导航、上传与参数设置
  • 【必看】2024国赛选题分布情况分析及数模国赛答辩指南~答辩不走弯路
  • 微服务注册中⼼1
  • 我设置了路由器自动切换ip,这会让我的账号登录地址经常改变吗
  • Nginx 限流实战教程和技巧
  • AlphaFold3 | 详解 AlphaFold3 的模型结构及其在不同类型的预测实验中的表现
  • 公交IC卡收单管理系统 多处 SQL注入致RCE漏洞复现
  • 淘客系统开发之卷轴模式系统源码功能分析
  • MoCo中的字典
  • Xcode16 iOS18 编译问题适配
  • 加密解密的艺术:探索Java中的DES算法
  • jQuery——层次选择器
  • MySQL常见面试总结
  • 记录一次学习--委派攻击学习
  • 前端列表数据太多导致页面卡顿就这么处理
  • 机器学习_神经网络_深度学习
  • MT6765/MT6762(R/D/M)/MT6761(MT8766)安卓核心板参数比较_MTK联发科4G智能模块
  • TikTok五分钟开户快速步骤流程!
  • BFS 解决拓扑排序 , 课程表 , 课程表 II , 火星词典
  • web安全攻防渗透测试实战指南_web安全攻防渗透测试实战指南,零基础入门到精通,收藏这一篇就够了
  • 大模型如何赋能智慧城市新发展?
  • 随记——机器学习
  • 【在Linux世界中追寻伟大的One Piece】进程间通信
  • 多路复用IO
  • C++ prime plus-7-編程練習
  • 计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果
  • Linux本地服务器搭建开源监控服务Uptime Kuma与远程监控实战教程
  • JS 历史简介
  • 爬虫逆向学习(七):补环境动态生成某数四代后缀MmEwMD
  • 光伏电站并网验收需要注意什么细节