我试图替换类中定义的函数,以便在不更改实际代码的情况下修改其函数(如内部工作)。
我以前从来没有这样做过,因此在更换它时遇到一些问题。
更改代码会让我访问python库中的包,这不是一个很好的选择。
例如,如果模块名为testmod
class testMOD(object):
def testFunc(self, variable):
var = variable
self.something = var + 12
然后我将导入testmod,定义一个类(mytest=testmod()),并访问类testfunc中定义的函数,并将其更改为已经定义的函数。
例如,
from somemodule import testMOD
mytest = testMOD()
def alternativeFunc(self, variable):
var = variable
self.something = var + 1.2
#problem here
mytest.testFunc = alternativeFunc
但是,它没有给出任何语法错误,问题是被替换的函数认为“self”是函数的另一个变量,并且说它需要“variable”变量的另一个参数(我想这不是一个好名字)。
我想做的是使替换函数与被替换函数完全相同,但是需要额外的代码或一些小的修改。然而,“自我”在课堂上并没有发挥应有的作用。
是否有一种方法可以正确实现定义的函数来替换导入类的函数?