python 当中类的实例也能当函数使?靠__call__!(

python当中的一个class A的实例a1,经常看到有的源代码写成h = a1(), 这时候并不是调用A的构造函数,但是a1是个实例,怎么能够call呢,后来看了源代码发现,class A当中有这么一句

def __call__( self, *args ):

    ....



顿时领悟了,添加了这个方法后,实例就可以像函数一样使用了,有点像Javascript, 模糊了class和function的界限,不过python这里使用明确的__call__ 才跨越此界限

你可能感兴趣的:(python)