替换模块中的包导入

时间:2018-05-16 22:18:25

标签: python-3.x python-import monkeypatching

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

from .utils import target_func

class ClassINeed:

    def function_i_call(self):
        return target_func()

我想用from classineed import ClassINeed导入ClassINeed,但用我自己的函数替换target_func。问题是,target_func不是我要导入的类的一部分。因此,我没有看到访问它的方法。什么是实现这个目标的方法?

1 个答案:

答案 0 :(得分:1)

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

P.S。如果您已经拥有ClassINeed,那么classineed.ClassINeed课程import classineed可能会更干净。