Я пытаюсь заменить функцию, определенную в классе, чтобы изменить ее функцию (как во внутренней работе) без изменения фактического кода.Я никогда не делал этого раньше, следовательно, возникли некоторые проблемы при замене.Изменение кода даст мне доступ к пакету в моей библиотеке 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» (я полагаю, это не былохорошее имя).
Что я хочу сделать, так это сделать заменяющую функцию точно такой же, как заменяемая, но с дополнительным кодом или некоторыми незначительными изменениями.Тем не менее, «я» в значительной степени не работает, как должно быть в классе.Есть ли способ правильно реализовать определенную функцию, чтобы заменить функцию импортированного класса?