python的函数对象,是自己具有call属性,还是函数对象的类,或者父类具有call属性?

因为表达式x.y会去搜索继承树的方式去访问,那么,对于表达式soo.__call__显示的结果,访问的是soo本身就具有的call属性,还是访问的soo的function类,或者说最顶端的父类object类具有的call属性。图片说明

函数默认就有call属性。非函数,比如对象,如果要能调用,才需要自己实现call属性

你可以理解为访问的是soo本身就具有的call属性,这是python为函数内置的。

在python中所有还是都有__call__方法,调用函数式其实调用的就是该方法。
如过一个类中定义了__call__方法,那么该类的实例也是可以直接调用的,如:
class A():
.......
def call(self):
........
a=A()
#再次可以之家调用a
a()