替换模块中的包导入

Replace package import in a module

我使用一个模块,该模块使用相对导入点表示法将函数导入为包导入:

from .utils import target_func

class ClassINeed:

    def function_i_call(self):
        return target_func()

我想用 from classineed import ClassINeed 导入 ClassINeed,但用我自己的函数替换 target_func。问题是,target_func 不是我正在导入的 class 的一部分。因此我看不到访问它的方法。有什么方法可以做到这一点?

from classineed import ClassINeed 之上,还执行 import classineed,然后根据需要通过 classineed.target_func = lambda : 'hello!' 覆盖 target_func

P.S。如果您已经有 import classineed.

,那么使用 classineed.ClassINeed 引用 class ClassINeed 可能会更清晰