我正在寻找覆盖/修补从第三方模块导入的函数的最佳实践方法。例如,在我的代码中我导入并使用如下函数:
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)
但是,我想避免[...]导入[..]中的" [...]"并保留原始函数名称,只是覆盖/修补它?
答案 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)