首页 > 解决方案 > 包中的覆盖函数

问题描述

我有一个架构,我使用包装器从包模块中调用函数。在模块内部有一个调用另外三个的函数。我需要在运行时覆盖其中之一。正是我需要更改转发到另一组被调用函数的参数。

这是一个案例示例:

一个.py

import b_wrapper as wrapper

def foo():
    if wrapper.bar(parameter):
    """some more code goes here"""

b_wrapper.py

import some.package.module as module

def bar(parameter):
    return module.baz(veryImportantParameter, parameter)

文件.py

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)

我试图做的是覆盖包装文件,但没有成功,因为其他功能正在干扰它。作为参考使用了这篇文章

我不太确定这是可行的,因为在此模块中调用了独特的函数,并且还在寻找不需要覆盖模块部分的替代方案。

编辑:混合参数和参数仅用于演示目的

标签: pythonoverriding

解决方案


推荐阅读