__call__方法可以让一个对象表现得像一个函数,可以被调用。
定义__call__方法的对象称为可调用对象(callable)。
例如,我们可以定义一个类,它的实例可以像函数一样被调用:
python
class Add(object):
def __init__(self, n):
self.n = n
def __call__(self, x):
return x + self.n
add_3 = Add(3)
add_10 = Add(10)
print(add_3(1)) # 4
print(add_10(5)) # 15
这里,Add类的实例add_3和add_10可以像函数一样被调用,这是因为定义了__call__方法。
所以__call__方法的作用就是让一个类的实例像函数一样被调用,从而让这个类成为一个可调用对象。