python中 __call__方法如何实现函数的调用

小编给大家分享一下python中 __call__方法如何实现函数的调用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

说明

1、调用被overload装饰的函数时,都会调用Function类中的__call__方法。

2、要使__call__方法从命名空间的get函数中获得正确的函数并进行调用。

实例

def __call__(self, *args, **kwargs):
  """重写能让类的实例变可调用对象的__call__方法"""
  # 依据参数,从虚拟命名空间中获取将要调用的函数
  fn = Namespace.get_instance().get(self.fn, *args)
  if not fn:
    raise Exception("no matching function found.")
  # 调用被封装的函数,并返回调用的结果
  return fn(*args, **kwargs)

该方法从虚拟命名空间中获得正确的函数。如果没有找到任何函数,它一个Exception。如果找到,它会调用函数并返回调用结果。

看完了这篇文章,相信你对“python中 __call__方法如何实现函数的调用”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!