Python中的魔法方法(也被称为特殊方法或双下划线方法)是那些以双下划线开头和结尾的特殊的方法,它们为Python语言提供了许多内置功能。以下是一些常用的Python魔法方法及其用途:
1. `__init__(self, ...)`
初始化方法,用于创建对象并设置初始状态。
2. `__new__(cls, *args, kwargs)`
用于创建对象,在`__init__`之前调用,负责返回新的实例。
3. `__del__(self)`
用于明确销毁某个对象。
4. `__str__(self)`
返回对象的非正式字符串表示形式,通过`str()`函数调用。
5. `__repr__(self)`
返回对象的正式字符串表示形式,通过`repr()`函数调用。
6. `__len__(self)`
返回对象的长度,通过内置函数`len()`调用。
7. `__call__(self, ...)`
允许一个类的实例像函数一样被调用。
8. `__getitem__(self, key)`
定义获取容器中指定元素的行为,相当于`self[key]`。
9. `__setitem__(self, key, value)`
定义设置容器中指定元素的行为,相当于`self[key] = value`。
10. `__delitem__(self, key)`
定义删除容器中指定元素的行为,相当于`del self[key]`。
11. `__getattr__(self, name)`
定义当用户试图访问一个不存在属性的时候的行为。
12. `__setattr__(self, name, value)`
定义当一个属性被设置的时候的行为。
13. `__getattribute__(self, name)`
定义当一个属性被访问的时候的行为。
14. `__delattr__(self, name)`
定义当一个属性被删除的时候的行为。
15. `__eq__(self, other)`
定义等于(`==`)操作符的行为。
16. `__ne__(self, other)`
定义不等于(`!=`)操作符的行为。
17. `__lt__(self, other)`
定义小于(`<`)操作符的行为。
18. `__le__(self, other)`
定义小于等于(`<=`)操作符的行为。
19. `__gt__(self, other)`
定义大于(`>`)操作符的行为。
20. `__ge__(self, other)`
定义大于等于(`>=`)操作符的行为。
21. `__add__(self, other)`
定义加法(`+`)操作符的行为。
22. `__sub__(self, other)`
定义减法(`-`)操作符的行为。
23. `__mul__(self, other)`
定义乘法(`*`)操作符的行为。
24. `__truediv__(self, other)`
定义真除法(`/`)操作符的行为。
25. `__floordiv__(self, other)`
定义整数除法(`//`)操作符的行为。
26. `__mod__(self, other)`
定义取模(`%`)操作符的行为。
27. `__pow__(self, other, modulo=None)`
定义幂运算(` `)操作符的行为。
28. `__neg__(self)`
定义负号(`-`)操作符的行为。
29. `__pos__(self)`
定义正号(`+`)操作符的行为。
30. `__abs__(self)`
定义绝对值(`abs()`)操作符的行为。
31. `__invert__(self)`
定义按位取反(`~`)操作符的行为。
32. `__lshift__(self, other)`
定义左移(`<<`)操作符的行为。
33. `__rshift__(self, other)`
定义右