gpt4 book ai didi

python - 覆盖(monkeypatch)第 3 方模块中的函数,该第 3 方模块中的其他函数使用该函数

转载 作者:行者123 更新时间:2023-12-01 04:32:42 30 4
gpt4 key购买 nike

我想覆盖某些第三方代码的内部函数。这是我的意图的一个例子。

(编辑:我已经更正了下面的拼写错误,现在这确实按预期工作)

#--- dog.py (3rd party code) ---
def _bark():
print("WOOF!")

def make_it_bark():
_bark()

#--- make_catlike.py (my code)---
import dog
dog._bark = lambda: print("MEOW") #<<-- 'bark' in original, so failed!!!!
dog.make_it_bark()
# edit: now prints out "MEOW" instead of "WOOF!" like I want

如何获取第 3 方dog.py 代码以使用我的版本的_bark?

[结论:这只是因为拼写错误而失败。感谢您的帮助!!]

最佳答案

在您提供的代码中,请确保在重新定义 _bark 函数时没有忘记下划线。如果您想更改类的方法,一个好主意是继承该类并覆盖您的类中的方法。

关于python - 覆盖(monkeypatch)第 3 方模块中的函数,该第 3 方模块中的其他函数使用该函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32150444/

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