gpt4 book ai didi

python - 覆盖内部函数

转载 作者:行者123 更新时间:2023-11-28 19:17:49 25 4
gpt4 key购买 nike

<分区>

我知道如何覆盖方法:

class Foo(object):
def bar(self):
return True


def damn_monkeys(self):
return False

Foo.bar = damn_monkeys

是否可以用函数实现类似的东西?

def foo(arg1):
def bar(arg2):
return 1
return bar(arg1)

foo.bar = monkeys # doesn't work as bar obviously isn't an attribute

我找到了一些 hooks (func_code),但那些似乎只供检查员使用,摆弄它们似乎很可疑。

我还注意到函数有一个 __init____call__ 引用,但它们似乎指向 __builtin__.__function 对象。我没有进一步检查,但似乎函数也是对象(读 python 中的所有内容都是对象是有意义的)。我想函数已经是 __function 对象的实例,这就是为什么 foo.__init__ 不会引发错误,但是它从未被调试器触及。

有没有办法在不复制或修补代码的情况下覆盖内部函数?

编辑重复答案:Can you patch *just* a nested function with closure, or must the whole outer function be repeated?

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