在 Python 类中,所有以双下划线 __ 开头和结尾命名的成员(包括属性和方法),都被称为特殊成员,也称为特殊方法或魔术方法。例如,类的 __init__(self) 构造方法就是最典型的特殊方法。
这些特殊成员的主要特点如下:
封装性:特殊方法通常不能在类的外部直接调用,但可以通过类内部的其他普通方法间接调用或修改其行为。
可重写性:Python 允许开发者根据需求重写这些特殊方法,从而实现对内置行为的自定义,提升类的灵活性和功能性。
功能特定性:每个特殊方法在 Python 中都有其特定的调用时机和作用,如 __init__(self) 用于对象初始化,__del__(self) 用于对象销毁前的清理,__new__(cls) 用于控制实例的创建过程等。
除了 __init__、__del__、__new__ 外,Python 类中还有许多其他特殊成员,具体如下表:
| | |
|---|
| __new__ | |
| __str__ | |
| __eq__ | |
| __getattr__ __getattribute____setattr____delattr__ | |
| __get__ | |
| __len__ __getitem____setitem____delitem____iter____contains____reversed__ | |
| __add____mul____truediv____neg____abs____int____float__ | |
| __call__ | |
| __enter__ | |
| __aiter__ | |
| __getstate__ __setstate____reduce____reduce_ex__ | |
| __init_subclass__ __subclasshook____class_getitem__ | |
这些特殊方法使得Python对象可以高度自定义其行为,实现各种高级功能。后续文章也会对上述表格中的每一类别进行详细说明。