修补本地实例

发布于 2024-12-11 14:46:46 字数 305 浏览 0 评论 0原文

考虑我在 python 模块 a.py 中有以下代码:

def func():
    obj = Obj()
    # Some code that uses obj

有没有办法在不使其成为函数参数的情况下猴子修补 obj

原因:在代码本身的上下文中,它不应该是一个参数,但是在使用代码进行测试和系统模拟的上下文中,补丁是合理的。此外,在各种情况下,我可能需要修补不同的本地对象,并将它们全部作为参数放置将是乏味的。

consider I have the following code in python module a.py:

def func():
    obj = Obj()
    # Some code that uses obj

Is there a way to monkey patch obj without making it a function argument?

Reason: In the context of the code itself it should not be an argument, however in the context of testing and system simulations using the code, the patch is reasonable. Also in various scenarios I may need to patch different local objects and placing all of them as arguments would be tedious.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

失眠症患者 2024-12-18 14:46:46
# if func() is defined in `a.py`
import a

oldObj, a.Obj = a.Obj, MockObj
a.func()
a.Obj = oldObj
# if func() is defined in `a.py`
import a

oldObj, a.Obj = a.Obj, MockObj
a.func()
a.Obj = oldObj
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文