Python中那些能够在后面加()来调用执行的对象,被称为可调用对象。可调用对象包括自定义函数、Python内置函数、实例对象和实例方法等。

call()方法是Python中一个很特殊的方法。凡是可调用对象,都可以通过调用__call__()方法来调用该对象。如果类中定义了__call__()方法,那么该类的实例对象也将成为可调用对象。该对象被调用时,将执行__call__()方法中的代码。

下面我们分别对这几种可调用对象执行__call__()方法。

自定义函数
对于自定义函数的调用,通常情况下是在函数名后加()来调用。但同样也可以用__call__()方法来调用。

输出结果:


内置函数
内置函数同样也可以用__call__()方法来调用。


输出结果:


类的实例对象
如果一个类中没有定义__call__()方法,那么这个类的实例对象是不可以被调用的。


输出结果:


但如果类中定义了__call__()方法,那么这个类的实例对象是可以被调用的。调用该实例对象就是执行__call__()方法中的代码。


输出结果: