您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中覆盖方法对象的__call__方法?

5b51 2022/1/14 8:20:41 python 字数 1708 阅读 451 来源 www.jb51.cc/python

参见英文答案 > Python functions and their __call__ attribute????????????????????????????????????1个这是我到目前为止正在使用的内容def f(n): return n f.__call__ = lambda n: n + 1 print f(2) #I ex

概述

参见英文答案 > Python functions and their __call__ attribute                                    1个
这是我到目前为止正在使用的内容

def f(n):
    return n

f.__call__ = lambda n: n + 1

print f(2) #I expect an output of 3 but get an output of 2

我对实现所需输出的另一种方式不感兴趣.相反,出于教育目的,我想知道为什么像我所做的那样压倒__call__,并不像我期望的那样工作.

if (PyFunction_Check(func))
    x = fast_function(func,pp_stack,n,na,nk);
else
    x = do_call(func,nk);

我猜这可能是为了提高效率,因为调用常规函数并忽略__call__属性是迄今为止最常见的调用方式.

总结

以上是编程之家为你收集整理的如何在Python中覆盖方法对象的__call__方法?全部内容,希望文章能够帮你解决如何在Python中覆盖方法对象的__call__方法?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶