来自第三方模块的覆盖/修补功能

时间:2015-01-22 14:23:15

标签: python

我正在寻找覆盖/修补从第三方模块导入的函数的最佳实践方法。例如,在我的代码中我导入并使用如下函数:

from somemodule import some_function
foo = 3
bar = 5
some_function(foo, bar)

我现在想用自己的函数覆盖some_function。我是我自己的功能,我想做一些魔法,然后调用原始功能。

现在,我这样做:

from somemodule import some_function as some_function_original

def some_function(f, b):
    # do some magic
    return some_function_original(f, b)

foo = 3
bar = 5
some_function(foo, bar)

但是,我想避免[...]导入[..]中的" [...]"并保留原始函数名称,只是覆盖/修补它?

1 个答案:

答案 0 :(得分:0)

考虑只导入模块的命名空间而不是精确的函数?

import somemodule

def some_function(f, b):
    # do some magic
    return somemodule.some_function(f, b)

foo = 3
bar = 5
some_function(foo, bar)