python内置方法

1.__call__

对象通过提供__call__(self, *args ,**kwargs)方法可以模拟函数的行为,如果一个对象x提供了该方法,就可以像函数一样使用它,也就是说x(arg1, arg2...) 等同于调用x.__call__(self, arg1, arg2) 

class Foo(object):

  def __call__(self):

    pass

f = Foo()    #类(),即执行元类的__call__ 

f()              #对象(),即执行Foo的__call__ 

这里的对象指可调用对象(callable),我们平时自定义的函数、内置函数和类都属于可调用对象,但凡是可以把一对括号()应用到某个对象身上都可称之为可调用对象,判断对象是否为可调用对象可以用函数 callable。

如果在类中实现了 __call__ 方法,那么实例对象也将成为一个可调用对象。

你可能感兴趣的:(python内置方法)