gpt4 book ai didi

python - 拦截返回

转载 作者:行者123 更新时间:2023-12-04 05:12:51 24 4
gpt4 key购买 nike

python中有没有办法拦截(和更改)已编译函数的返回值?

基本思想是:我有一个函数

def a (n, acc):
if n == 0: return acc
return a (n - 1, acc + n)

我想修补它,使其表现如下:
def a (n, acc):
if n == 0: return acc
return lambda: a (n - 1, acc + n)

是否可以写一个函数 f ,例如 f (a)产生一个函数,如第二个代码片段?

我可以通过 inspect 修补该功能如果 python 可以找到它的源,然后返回新编译的修补函数,但这不会有太大帮助。

最佳答案

卢克的回答非常详细,但这可能仍然有帮助:

>>> def f(*args, **kwargs):
... return lambda: a(*args, **kwargs)
...
>>> f(10, 0)()
55

关于python - 拦截返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14670132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com