我有一个体系结构,其中使用包装器从包模块调用函数。在模块内部,有一个函数调用另外三个函数。我需要在运行时覆盖其中之一。确实,我需要更改转发给另一组调用函数的参数。
这是一个案例样本:
import b_wrapper as wrapper
def foo():
if wrapper.bar(parameter):
"""some more code goes here"""
import some.package.module as module
def bar(parameter):
return module.baz(veryImportantParameter, parameter)
def functionThree(par): # needs to be overwritten
"""more functions called forwarding par as a parameter"""
def baz(veryImportantParameter, parameter)
functionOne(veryImportantParameter, otherParameters)
functionTwo(veryImportantParameter, someMoreParameters)
functionThree(veryImportantParameter, parameterToChange, evenMoreParameters)
我试图做的是在包装文件中覆盖,但没有成功,因为其他功能正在干扰它。作为参考,使用了此post。
我不确定这是否可行,因为在此模块内部调用了独特的功能,而且还在寻找不需要覆盖模块的替代部分的替代方案。
编辑:混合参数和参数是故意,仅用于演示目的。