class Foo:
pass
f1=Foo()
print(f1)
f1()
输出的结果为
从输出的结果来看报错的原因是Foo这个类不能被调用,
从中我们也可以看出来f1是Foo的对象object
就是应为我们没有定义call方法,所以才导致不能被调用,
我们修改下代码
class Foo:
def __call__(self, *args, **kwargs):
print(‘这个是call方法‘)
f1=Foo()
print(f1)
f1()
这样就没问题了

这也说明了f1()调用的是Foo下面的call方法
原文:http://blog.51cto.com/853056088/2139321