python中的魔术方法
Python 中的魔术方法是特殊命名的方法,它们以双下划线开头和结尾,并具有特殊的用途。以下是 Python 中常用的一些魔术方法:
__getitem__: 用于获取对象的索引值对应的值,配合索引操作([])使用。
__setitem__: 用于设置对象的索引值对应的值,配合索引操作([])使用。
__delitem__: 用于删除对象的索引值对应的值,配合索引操作([])使用。
__repr__: 用于返回对象的字符串表示,通常用于调试和日志记录。
__str__: 用于返回对象的字符串表示,可读性较好,常用于打印对象。
__iter__: 用于使对象可迭代,配合迭代器使用。
__next__: 用于获取迭代器中的下一个元素,配合迭代器使用
__add__, __sub__, __mul__, __div__ 等:用于实现对象的加法、减法、乘法、除法等运算。
__eq__: 用于定义对象的相等性操作,配合等于操作符(==)使用。
__lt__, __le__, __gt__, __ge__: 用于定义对象的比较操作,分别对应小于、小于等于、大于、大于等于操作符。
__getattr__: 当访问对象的属性不存在时调用,允许动态返回属性值。
__setattr__: 当设置对象的属性时调用,允许在赋值操作时自定义逻辑。
__new__ 在对象创建过程中是第一个被调用的方法。
__init__: 初始化方法,当一个对象被创建时调用。
__del__: 析构方法,当一个对象被销毁时调用。
__call__: 使对象可以被调用,类似于函数的调用,可以直接调用对象本身。
__len__: 返回对象的长度,配合内置函数 len() 使用。
__hash__: 返回对象的哈希值,配合内置函数 hash() 使用。
__dir__: 返回对象的属性和方法列表,配合内置函数 dir() 使用。
__format__: 定义对象被内置函数 format() 调用时的格式化字符串行为。
__bool__: 用于定义对象的布尔值,配合内置函数 bool() 使用。
__copy__ 和 __deepcopy__: 用于对象的浅拷贝和深拷贝操作。
__enter__ 和 __exit__: 用于创建上下文管理器,配合 with 语句使用。
__contains__: 用于判断对象是否包含某个值,配合 in 关键字使用。
__getattribute__: 当访问对象的属性时调用,无论属性是否存在。
__index__: 返回对象的整数值,配合内置函数 bin(), oct(), hex() 使用。
__reduce__ 和 __reduce_ex__: 用于序列化对象,将对象转换为可被 pickle 模块序列化的形式。
__bytes__: 用于返回对象的字节表示,配合内置函数 bytes() 使用。
- 共36个常见27个不常见9个