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

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

如下图:

python call方法有什么用

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

python call方法有什么用

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

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

 

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

print(callable(p))#True

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

 

 

相关文章:

  • 2021-06-24
  • 2022-12-23
  • 2021-07-19
  • 2021-09-22
  • 2021-09-19
  • 2022-12-23
  • 2021-04-20
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
  • 2022-12-23
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案