Showing posts with label class function. Show all posts
Showing posts with label class function. Show all posts

Wednesday, July 21, 2010

patching class function in python

Today we had to patch a class function in production. Monkey patching can become tricky if reference are kept at several place like pointer in C and C++.
Here is a simple example on how to make sure all references will use the new definition.
class Foo:
def f(self):
print "default f"

def newf(self):
print "newf"

Foo.f.im_func.func_code = newf.func_code
This is another reason why interpreter language like python are so powerful.