Search code examples
pythonobjectmonkeypatchingredefinition

Redefine Python object method?


Suppose I have a class Foobar and I want to redefine a method of one of its instances:

class Foobar:
    def myMethod(self):
        print('this method was not overridden')

foo = Foobar()

def foo.myMethod:
    print('this method was overridden')

Problem is, this approach throws errors. Is there a way to redefine object methods?


Solution

  • You can just create a new method and assign it

    def new_method():
        print("Hello")
    
    foo.myMethod = new_method