可以讲一讲python 中的默认方法吗,比如说__call__
时间: 2024-02-27 14:51:29 浏览: 61
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
当我们在Python中定义一个类时,它会自动继承一些默认的方法,这些方法也被称为魔术方法或特殊方法。__call__就是其中之一。
__call__方法允许我们将一个类的实例像函数一样进行调用。当我们在一个实例后面加上一对括号并传递参数时,Python 会自动调用 __call__ 方法。
例如,我们可以定义一个类,让它的实例可以像函数一样进行调用,计算两个数的和:
```
class Adder:
def __init__(self):
self.sum = 0
def __call__(self, *args):
for i in args:
self.sum += i
return self.sum
add = Adder()
print(add(1, 2, 3)) # 输出 6
```
在这个例子中,我们定义了一个Adder类,它有一个__call__方法,当我们像函数一样调用它的实例时,它会将传入的参数相加并返回结果。
除了__call__方法,Python中还有很多其他的默认方法,比如__init__方法用于初始化对象,__str__方法用于定义对象的字符串表示形式等等。这些默认方法可以让我们更方便地定义我们自己的类,并且让我们的代码更具可读性和可维护性。
阅读全文