MyClass
определен в module.py
. Мы не можем изменить его. Но мы знаем, что определение класса выглядит следующим образом:Как продлить экземпляр класса
class MyClass:
def method(self, msg):
print 'from method:', msg
Я начинаю свой скрипт с импортом модуля, а затем объявить экземпляр объекта:
import module
foo = module.MyClass()
Тогда я написать свою собственную функцию:
def function(msg):
print 'from function:', msg
Теперь, каждый раз, когда используется foo.method('')
, я хочу позвонить function()
, поэтому он печатает одно и то же сообщение.
Будет ли эта ситуация называться monkey patching
? Как достичь того, что необходимо?
Подкласс его и переопределить метод '()' и вызовите базовый класс 'method()', используя 'super()'. –
Есть ли причина, по которой вы не просто создаете подкласс? –
Извините, я забыл упомянуть, что я не могу подкласса или наследовать от 'MyClass'. – alphanumeric