在 Python 中,类的内置函数(也称为魔术方法或特殊方法)以双下划线开头和结尾,用于自定义类的行为。以下是一些常见的内置函数及其作用:
-
__init__(self, ...)
: 构造函数,用于初始化对象。创建一个类的实例时会自动调用该方法。 -
__del__(self)
: 析构函数,用于在对象被销毁时释放资源。Python 自带自动垃圾回收机制,一般情况下不需要手动调用该方法。 -
__str__(self)
: 字符串表示函数,用于返回对象的可读字符串表示形式。例如,在打印一个对象时会调用该方法。 -
__repr__(self)
: 与__str__(self)
类似,也用于返回对象的字符串表示形式。区别是__repr__(self)
返回的字符串应该是可以被解析的 Python 表达式。 -
__len__(self)
: 用于返回对象中元素数量的整数。可以与 Python 内置函数len()
配合使用。 -
__getitem__(self, item)
: 用于获取对象中指定的元素。可以使用索引、切片、迭代器等方式进行操作。 -
__setitem__(self, item, value)
: 用于设置对象中指定元素的值。 -
__getattr__(self, name)
: 用于获取对象中不存在的属性。该方法在正常的属性访问链路中寻找不到属性时被调用。 -
__setattr__(self, name, value)
: 用于设置对象中不存在的属性。 -
__call__(self, *args, **kwargs)
: 将一个对象像函数一样调用。例如,obj(a, b)
就相当于obj.__call__(a, b)
。 -
__lt__(self, other)
,__le__(self, other)
,__eq__(self, other)
,__ne__(self, other)
,__gt__(self, other)
,__ge__(self, other)
: 分别用于定义对象的小于、小于等于、等于、不等于、大于、大于等于运算符。 -
__contains__(self, item)
: 用于实现成员资格测试操作符in
。 -
__iter__(self)
: 用于返回可迭代对象的迭代器。可以使用for
循环遍历对象。 -
__next__(self)
: 用于返回可迭代对象迭代器的下一个元素。 -
__enter__(self)
,__exit__(self, exc_type, exc_val, exc_tb)
: 分别用于实现 Python 上下文管理协议的进入和退出方法。
上述仅是一些常见的内置函数,实际上 Python 类的内置函数非常多,您可以根据需求自定义这些函数,实现更灵活和高效的类行为。