【Python学习笔记】魔术方法

在Python中,"魔术"方法或魔术函数是指以双下划线(__)开始和结束的特殊方法。这些方法有特殊的含义,通常用于实现类的某些特殊行为。以下是一些常见的魔术方法及其用法的示例:

  1. __init__ - 构造函数,用于初始化新创建的对象:
python 复制代码
class MyClass:
    def __init__(self, value):
        self.value = value

obj = MyClass(5)
print(obj.value)  # 输出: 5
  1. __str__ - 返回对象的字符串表示:
python 复制代码
class MyClass:
    def __str__(self):
        return "MyClass instance"

obj = MyClass()
print(str(obj))  # 输出: MyClass instance
  1. __repr__ - 返回对象的官方字符串表示(通常可以用于重新创建对象):
python 复制代码
class MyClass:
    def __repr__(self):
        return "MyClass()"

obj = MyClass()
print(repr(obj))  # 输出: MyClass()
  1. __eq__ - 实现对象之间的等价比较:
python 复制代码
class MyClass:
    def __init__(self, value):
        self.value = value
    
    def __eq__(self, other):
        return self.value == other.value

obj1 = MyClass(5)
obj2 = MyClass(5)
print(obj1 == obj2)  # 输出: True
  1. __add__ - 实现对象之间的加法运算:
python 复制代码
class MyClass:
    def __init__(self, value):
        self.value = value
    
    def __add__(self, other):
        return MyClass(self.value + other.value)

obj1 = MyClass(5)
obj2 = MyClass(7)
obj3 = obj1 + obj2
print(obj3.value)  # 输出: 12

这些只是魔术方法的一些示例,还有许多其他的魔术方法,例如__getitem__、__setattr__、__del__等,可用于实现各种自定义行为和操作。通过合理地使用这些魔术方法,可以创建具有丰富功能和良好接口的自定义对象。

相关推荐
蒸鱼Yuzheng19 分钟前
自动化长任务治理:租约、心跳、孤儿进程与安全回收
自动化测试·python·任务调度·可靠性·分布式系统
Source.Liu1 小时前
【A11】服务器数据库结构笔记
服务器·数据库·笔记
AI职业加油站1 小时前
模数共振行动解读|大模型应用工程师证书,匹配行业 RAG/Agent 落地人才需求
人工智能·学习·算法·职场和发展·职场发展
2601_962885721 小时前
从 baostock 迁移到 AlphaFeed:接口对照与代码迁移指南
python
SZleoWang1 小时前
费曼学习法的4个步骤:选概念、教别人、找缺口、再简化
学习
AI情绪识别开源1 小时前
检信ALLEMOTION 标定治理与信号质量闸门 · 老年无感认知评估分析器
python
1314lay_10071 小时前
ABAP 读取服务器的文件 OPEN DATASET,READ DATASET f_filepath INTO l_file.
经验分享·笔记
七夜zippoe1 小时前
启元 Q1 腿部运动学逆解:Python 算站立下蹲关节角
开发语言·python·ai·机器人·腿部运动学
MichaelJohn2 小时前
我用 Obsidian + Claude Code + GitHub 搭了个真正「会生长」的第二大脑
笔记
lengxuenong2 小时前
树状数组 · 信息学学习手册2-离散化与逆序对
c++·学习·算法