Python的魔法函数(Magic Functions),又称为双下方法(dunder methods),是一些具有特殊名称的函数,它们以双下划线(__
)开始和结束。这些函数是Python对象模型的一部分,用于实现和自定义对象的行为,如迭代、比较、属性访问等。以下是一些常见的魔法函数及其用途的详细解读:
-
__new__(cls, [...])
- 用于创建和返回一个新对象。
__new__
通常在元类中使用,以控制类的实例化过程。它接收类本身作为第一个参数,随后是传递给构造函数的参数。
- 用于创建和返回一个新对象。
-
__init__(self, [...])
- 用于初始化新创建的对象。
__init__
在对象创建后被调用,用于设置对象的初始状态。它不应该有返回值。
- 用于初始化新创建的对象。
-
__del__(self)
- 析构函数,当对象被垃圾回收时调用。在Python中,
__del__
的调用时机不能保证,因此它不应用于资源管理,而应该使用上下文管理器或with
语句来管理资源。
- 析构函数,当对象被垃圾回收时调用。在Python中,
-
__str__(self)
- 当对象被转换为字符串或被
print()
函数打印时调用。应该返回一个描述性的字符串。
- 当对象被转换为字符串或被
-
__repr__(self)