背景:我试图理解为什么静态和类方法在作为描述符时不可调用,而类的普通方法(即既不是静态方法也不是类方法的类的方法)和不是类属性的函数都是描述符并且可以调用。
在 Python 中,可调用类型的定义是什么?
来自https://docs.python.org/3/reference/datamodel.html
可调用类型这些是可以应用函数调用操作(参见调用部分)的类型:
运算符是“函数调用操作”
()
吗?那么可调用类型是否定义为()
可以应用函数调用运算符的实例的类型?来自https://docs.python.org/3/reference/expressions.html#calls
主对象必须评估为可调用对象(用户定义的函数、内置函数、内置对象的方法、类对象、类实例的方法以及所有具有
__call__()
方法的对象都是可调用的)。这是否意味着可调用类型可能有也可能没有
__call__()
方法?如果一个类有一个__call__()
方法,那么它一定是一个可调用的类型吗?如果一个类没有__call__()
方法,那么它可能是也可能不是可调用类型?“自定义函数、内置函数、内置对象的方法、类对象、类实例的方法”没有
__call__()
方法吗?它们是可调用类型的实例吗?它们分别有哪些具体类型?
谢谢。