当前位置:首页>python>Python学习--类特殊成员(属性和方法)

Python学习--类特殊成员(属性和方法)

  • 2026-08-22 18:08:22
Python学习--类特殊成员(属性和方法)

在 Python 类中,所有以双下划线 __ 开头和结尾命名的成员(包括属性和方法),都被称为特殊成员,也称为特殊方法或魔术方法。例如,类的 __init__(self) 构造方法就是最典型的特殊方法。

这些特殊成员的主要特点如下:

  1. 封装性:特殊方法通常不能在类的外部直接调用,但可以通过类内部的其他普通方法间接调用或修改其行为。

  2. 可重写性:Python 允许开发者根据需求重写这些特殊方法,从而实现对内置行为的自定义,提升类的灵活性和功能性。

  3. 功能特定性:每个特殊方法在 Python 中都有其特定的调用时机和作用,如 __init__(self) 用于对象初始化,__del__(self) 用于对象销毁前的清理,__new__(cls) 用于控制实例的创建过程等。

除了 __init__、__del__、__new__ 外,Python 类中还有许多其他特殊成员,具体如下表:

  类别
方法
描述
 构造
__new__
 __init__
 __del__
对象生命周期
 表示
__str__
 __repr__
__format____bytes__
字符串表示
 比较
__eq__
 __lt__
 __le__
__gt__
__ge____ne__
__hash__
比较和哈希
 属性
__getattr__
 __getattribute____setattr____delattr__
__dir__
属性访问
 描述符
__get__
 __set__
__delete____set_name__
描述符协议
 容器
__len__
 __getitem____setitem____delitem____iter____contains____reversed__
容器行为
 数值
__add__
 __sub__
__mul____truediv____neg____abs____int____float__
数值运算
 调用
__call__
使对象可调用
 上下文
__enter__
 __exit__
__aenter____aexit__
上下文管理
 异步
__aiter__
 __anext__
异步迭代
 序列化
__getstate__
 __setstate____reduce____reduce_ex__
Pickle协议
 类相关
__init_subclass__
 __subclasshook____class_getitem__
类操作

这些特殊方法使得Python对象可以高度自定义其行为,实现各种高级功能。后续文章也会对上述表格中的每一类别进行详细说明。

最新文章

随机文章