python call方法有什么用

__call__()方法的作用其实是把一个类的实例化对象变成了可调用对象,也就是说把一个类的实例化对象变成了可调用对象,只要类里实现了__call__()方法就行。

如当类里没有实现__call__()时,此时的对象p 只是个类的实例,不是一个可调用的对象,当调用它时会报错:'Person' object is not callable

如下图:

python call方法有什么用_第1张图片

现在把Person类的实例p变成可调用的对象

python call方法有什么用_第2张图片

单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。

其实p('Tim')相当于#-->p.__call__('Tim')

 

总结:1.python 可调用对象:可以通过内置函数callable来判断,如:

print(callable(p))#True

2.如果类定义了__call__方法,那么它的实例可以变为可调用对象

 

 

你可能感兴趣的:(python call方法有什么用)