可执行调用运算,并传递若干参数的对象称可调用对象callable。如:
callable(argument1, argument2, argumentN)
- 函数
function如函数f
def f(arg1, arg2, argN): ...
- 方法
method如方法f
class C:
def f(self, arg1, arg2): ...
- 类
class如类C
class C:
def __new__(cls, *args, **kwargs): ...
def __init__(self, arg1, arg2): ...
类调用时,会先调用方法__new__(隐式静态)创建类实例。类作为首参传递,其余参数依次传递。而后,返回的类实例作为首参传递给方法__init__,其余参数依次传递。
相当于C++的new表达式效果
- 实现方法
__call__的类的实例
class C:
def __call__(self, arg1, arg2): ...
当此种类实例被当作函数调用时,会调用其方法__call__。即:
instance = C()
c(arg1, arg2)
如同:
instance = C()
type(instance).__call__(instance, arg1, arg2)
相当于重载了运算符operator()的C++类,亦称函数对象。









