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

Python常用魔术方法 (学习笔记)

文章目录

  • 一、魔术方法是什么?
  • 二、使用步骤
    • 1.__ str __(self):
    • 2.__ lt__(self):
    • 3. __ le __(self):
    • 4. __ eq __(self):
  • 总结


一、魔术方法是什么?

在Python中,魔术方法(也称为特殊方法或双下划线方法)是一类具有特殊用途的方法,它们的名字以双下划线(__)开头和结尾。这些方法允许对象自定义其行为,例如定义对象的创建、初始化、显示、比较等。以下是Python中一些常用的魔术方法及其用途:

二、使用步骤

1.__ str __(self):

原本我们直接打印stu1会是对象地址值,有了这个__str__()会直接返回我们键值对
代码如下(示例):

class Student:
    name = None
    age = None
    gender = None

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    def __str__(self):
        return f'{self.name}, {self.age}, {self.gender}'


stu1 = Student('张三',22,'男')

# 输出
print(stu1)  #如果没有魔术方法会打印: <__main__.Student object at 0x00000122F74551C0>
print(stu1)  #有魔术方法: 张三, 22,

2.__ lt__(self):

这个是用于比较两个对象大于或者小于问题:用了这个__lt__方法就会自定义比较的值来判断两个对象是否相同
代码如下(示例):

class Student:
    name = None
    age = None
    gender = None

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender
        
    def __lt__(self, other):
        return self.age < other.age

stu1 = Student('张三',18,'男')
stu2= Student("张安",22,"男")
print(stu1 > stu2) # 输出: False

3. __ le __(self):

这个是用于比较两个对象大于等于或者小于等于问题:用了这个__le__方法就会自定义比较的值来判断两个对象是否相同

class Student:
    name = None
    age = None
    gender = None

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

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

stu1 = Student('张三',18,'男')
stu2= Student("张安",22,"男")
print(stu1 >= stu2)  # 输出  False

4. __ eq __(self):

这个是用于比较两个对象大于等于或者小于等于问题:用了这个__le__方法就会自定义比较的值来判断两个对象是否相同

class Student:
    name = None
    age = None
    gender = None

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

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

stu1 = Student('张三',18,'男')
stu2= Student("张安",22,"男")

print(stu1 == stu2) # 输出 False

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Python中常用魔术方法的使用,通过这些魔术方法,你可以控制对象的行为,使其更符合你的需求。


http://www.kler.cn/a/398084.html

相关文章:

  • Python学习笔记(2)正则表达式
  • ADS项目笔记 1. 低噪声放大器LNA天线一体化设计
  • xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer
  • GPIO相关的寄存器(重要)
  • vue如何实现组件切换
  • 高级计算机算法的8道题(贪心、动态规划)
  • Prometheus面试内容整理-PromQL 查询语言
  • 【软件测试】设计测试用例的万能公式
  • git简介和本地仓库创建,并提交修改。git config init status add commit
  • 开启鸿蒙开发之旅:交互——点击事件
  • 领夹麦克风哪个品牌好,手机领夹麦克风哪个牌子好,选购推荐
  • redis集群:怎么找到AOF文件的位置
  • 每日一博 - Java的Shallow Copy和Deep Copy
  • JMeter与大模型融合应用之JMeter日志分析服务化实战应用
  • 使用 Pytorch 搭建视频车流量检测资源(基于YOLO)
  • 提取双栏pdf的文字时 输出文件顺序混乱
  • opencv(c++)----图像的读取以及显示
  • Springboot maven常见依赖、配置文件笔记
  • vue | 劫持原理
  • 【HarmonyOS NEXT】实战——登录页面
  • k8s1.21.1 etcd服务备份恢复
  • 理解 HTML5 Canvas 中逻辑像素与物理像素的关系
  • GStreamer 简明教程(九):Seek 与跳帧
  • 基于Spring Boot的船运物流管理系统的设计与实现,LW+源码+讲解
  • shell编程--传参与数学运算
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-串行调用多个tools(三)