如果定义了__call__函数,当调用类对象的实例的时候,实例会调用__call__方法,这样实例的外观和用法就类似于函数了,换句话说,我们可以把这个类型的对象当作函数来使用,相当于重载了括号运算符.
在Python的官方文档里对这个的说明是,如果定义了__call__的话,x(arg1, arg2, ...) is a shorthand for x.__call__(arg1, arg2, ...).
__call__乍一看可能有点奇怪,但是需要为函数的API编写接口的时候,__call__就很有用了。