【发布时间】:2022-01-16 15:12:57
【问题描述】:
我有文件main.py,其中包含以下代码:
class A:
def __init__(self, a):
self.a = a
def run(self):
return self.a+10
a = A(4)
print(a.run())
在文件test.py 中,我尝试在main.py 中修改类A 如下:
import main
class A:
def __init__(self, a):
self.a = a
def run(self):
return self.a+5
main.A = A
不幸的是,当我从 python 解释器运行 import test 时,模块仍然打印出 14,而不是我预期的输出 9。
有没有办法在模块主体执行之前对模块内的类进行猴子补丁?
【问题讨论】:
标签: python module mocking monkeypatching