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

相关推荐
咸甜适中8 分钟前
rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(二十八)使用图片控件显示图片
笔记·学习·rust·egui
一又四分之一.17 分钟前
高数基础知识(下)②
笔记
秋氘渔20 分钟前
迭代器和生成器的区别与联系
python·迭代器·生成器·可迭代对象
Gu_shiwww22 分钟前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
ZHANG8023ZHEN1 小时前
fMoE论文阅读笔记
论文阅读·笔记
Ro Jace2 小时前
文献阅读笔记:R&S电子战测试与测量技术文档
笔记
Dxy12393102162 小时前
python把文件从一个文件复制到另一个文件夹
开发语言·python
sonrisa_2 小时前
collections模块
python
折翼的恶魔3 小时前
数据分析:排序
python·数据分析·pandas
兔子不吃草~3 小时前
Transformer学习记录与CNN思考
学习·cnn·transformer