Python中的魔法方法(Magic methods)是特殊的方法,它们以双下划线(__)开头和结尾,如__init__()、__str__()、__len__()等等。魔法方法允许开发者自定义类的行为,例如使对象能够进行加法、减法、比较等操作,也可以自定义类的初始化、转换成字符串等操作。
以下是Python中常用的魔法方法:
__init__(self, ...):类的初始化方法,当创建对象时调用,用于对对象的属性进行初始化。
__str__(self):返回对象的字符串表示形式,通常用于调试和日志记录。
__repr__(self):返回对象的“官方”字符串表示形式,通常用于开发者调试和交互式环境。
__len__(self):返回对象的长度。
__getitem__(self, key):获取对象的某个元素,通常用于支持下标操作,如obj[0]。
__setitem__(self, key, value):设置对象的某个元素的值,通常用于支持下标赋值操作,如obj[0] = 1。
__delitem__(self, key):删除对象的某个元素,通常用于支持下标删除操作,如del obj[0]。
__contains__(self, item):判断对象是否包含某个元素,通常用于支持in操作。
__eq__(self, other):判断对象是否等于另一个对象,通常用于支持==操作。
__ne__(self, other):判断对象是否不等于另一个对象,通常用于支持!=操作。
__lt__(self, other):判断对象是否小于另一个对象,通常用于支持<操作。
__gt__(self, other):判断对象是否大于另一个对象,通常用于支持>操作。
__le__(self, other):判断对象是否小于等于另一个对象,通常用于支持<=操作。
__ge__(self, other):判断对象是否大于等于另一个对象,通常用于支持>=操作。
__add__(self, other):用于对象相加,如obj1 + obj2。
__sub__(self, other):用于对象相减,如obj1 - obj2。
__mul__(self, other):用于对象相乘,如obj1 * obj2。
__truediv__(self, other):用于对象相除,如obj1 / obj2。
__floordiv__(self, other):用于对象整除,如obj1 // obj2。
__mod__(self, other):用于对象取模,如obj1 % obj2。