Python中的魔法方法(也被称为特殊方法或双下划线方法)是那些以双下划线开头和结尾的特殊方法,它们允许你自定义类的行为。以下是一些常用的Python魔法方法及其用途:
`__new__`:用于创建对象实例。
`__init__`:用于初始化新创建的对象实例。
字符串表示
`__str__`:定义对象的非正式字符串表示形式,通常用于`print`函数。
`__repr__`:定义对象的正式字符串表示形式,通常用于调试。
数值运算
`__add__`, `__sub__`, `__mul__`, `__truediv__`, `__floordiv__`:分别对应加法、减法、乘法、真除法和整数除法。
`__mod__`:对应取余除法。
`__pow__`:对应幂运算。
`__rshift__`, `__and__`, `__xor__`, `__or__`:分别对应位运算符右移、与、异或和或。
容器操作
`__getitem__`:定义对象的索引访问。
`__setitem__`:定义对象的索引赋值。
其他特殊方法
`__del__`:定义对象销毁时的行为。
`__call__`:允许类的实例像函数一样被调用。
`__getattr__`:定义当访问不存在的属性时的行为。
`__setattr__`:定义设置属性时的行为。
`__getattribute__`:定义访问属性时的行为。
这些魔法方法使得Python类具有高度的灵活性和扩展性,允许开发者自定义类的实例化、运算、属性访问等多种行为。