Python 魔法方法(2026 超详版)

Python 魔法方法是什么?

在 Python 中,魔法方法也称为 “特殊方法(Special Methods)” 或 “双下划线方法(Dunder Methods)” ,它是 Python 中非常强大且常用的一部分。

魔法方法允许你为自定义的类添加类似内置类型(如列表、字典、字符串等)的行为,从而实现运算符重载、迭代、属性访问控制等高级功能。

其中,常用的魔法方法如下表所示。

Python 常用魔法方法
对象定制
__init__() 初始化类的新实例
__new__() 在初始化前创建类的新实例
__del__() 定义对象被垃圾回收时的行为
__str__() 返回对象的字符串表示(供用户阅读)
__repr__() 返回对象的字符串表示(供开发者阅读)
__bytes__() 返回对象的字节表示
__format__() 定义字符串格式化的自定义行为
__hash__() 返回对象的整数哈希值
__bool__() 定义对象的真值
__call__() 使对象可像函数一样调用
__getattr__() 处理对未定义属性的访问
__setattr__() 控制对象属性的设置
__delattr__() 控制对象属性的删除
容器相关
__len__() 返回对象的长度
__getitem__() 获取指定键或索引的元素
__setitem__() 设置指定键或索引的元素值
__delitem__() 删除指定键或索引的元素
__iter__() 返回对象对应的迭代器
__next__() 返回迭代器的下一个元素
__contains__() 判断对象是否包含指定元素
比较操作
__eq__() 定义对象 “相等(==)” 的比较行为
__ne__() 定义对象 “不等(!=)” 的比较行为
__lt__() 定义对象 “小于(<)” 的比较行为
__le__() 定义对象 “小于等于(<=)” 的比较行为
__gt__() 定义对象 “大于(>)” 的比较行为
__ge__() 定义对象 “大于等于(>=)” 的比较行为
其他常用
__abs__() 返回对象的绝对值

为什么要使用魔法方法?

在 Python 中,魔法方法主要有以下特点。

  • 实现特殊行为:魔法方法允许你的自定义类表现出和内置类型相似的行为,例如可以直接使用 “+” 运算符来合并你的对象,或者使用 for 循环来遍历你的自定义集合。
  • 代码清晰和直观:通过重载运算符,可以让代码更具表现力和可读性,符合直觉。例如,len(my_object) 比 my_object.get_length() 更简洁明了。
  • 框架和库的基础:许多 Python 框架和库(如 Django ORM、Pandas、Numpy)都大量使用了魔法方法来实现其核心功能。

上一篇: 没有了

下一篇: __init__()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号