Python的魔术方法
时间: 2023-12-25 15:28:37 浏览: 36
Python中的魔术方法是指以双下划线(__)开头和结尾的特殊方法,也称为特殊方法或者魔法方法。这些方法在Python中有着特殊的用途,例如实现运算符重载、创建可调用对象等。以下是一些常用的魔术方法:
1. __init__(self[, ...]):类的初始化方法,创建对象时自动调用。
2. __str__(self):返回对象的字符串表示形式,可通过print()函数输出。
3. __repr__(self):返回对象的字符串表示形式,可通过交互式解释器输出。
4. __eq__(self, other):定义对象之间的相等比较,通常与__ne__()方法一起使用。
5. __lt__(self, other):定义对象之间的小于比较,通常与__le__()、__gt__()、__ge__()方法一起使用。
6. __add__(self, other):定义对象之间的加法操作,通常与__sub__()、__mul__()、__truediv__()方法一起使用。
7. __call__(self[, args...]):使对象变成可调用的,可以像函数一样调用。
8. __len__(self):返回对象的长度,可用于序列、映射等对象。
9. __getitem__(self, key):定义获取对象中指定元素的行为,可用于序列、映射等对象。
10. __setitem__(self, key, value):定义设置对象中指定元素的行为,可用于序列、映射等对象。
以下是一个示例,演示了如何使用__str__()方法和__add__()方法:
```python
class MyClass:
def __init__(self, value):
self.value = value
def __str__(self):
return "MyClass with value: {}".format(self.value)
def __add__(self, other):
return MyClass(self.value + other.value)
a = MyClass(10)
b = MyClass(20)
print(a) # 输出:MyClass with value: 10
c = a + b
print(c) # 输出:MyClass with value: 30
```