【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__等,可用于实现各种自定义行为和操作。通过合理地使用这些魔术方法,可以创建具有丰富功能和良好接口的自定义对象。

相关推荐
私人珍藏库5 小时前
[Android] 会计快题库 -财会职称考试刷题学习
android·人工智能·学习·app·软件·多功能
闻道且行之6 小时前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr
许彰午7 小时前
95_Python内存管理与垃圾回收
开发语言·python
骄阳如火7 小时前
Python 性能深度剖析:从“被诟病的慢”到“Rust 重塑”的拐点
python
满怀冰雪8 小时前
03-第一个 Paddle 程序:Tensor 创建、计算与设备管理
人工智能·python·paddle
CClaris8 小时前
大模型量化从0到1(九):用 llama.cpp 把模型转成 GGUF 并跑本地推理
人工智能·pytorch·python·深度学习·llama
学编程的小虎8 小时前
SenseVoice微调
人工智能·python·自然语言处理
诸葛说抛光9 小时前
国内大型汽车改装展览会定展 佛山改装 佛山汽车赛事
python·汽车
chouchuang9 小时前
day-030-综合练习-笔记管理器
开发语言·笔记·python
乖巧的妹子9 小时前
Python基础核心知识点详解:内置函数、运算符、字符串方法、数据结构与类型转换
python