[Tutor] Dynamically changing a class
Alan Gauld
alan.gauld at btinternet.com
Tue Sep 4 10:52:42 CEST 2007
"Jason Doege" <jdoege at da-test.com> wrote
> I'd like to change the behavior of a class' member function
> dynamically
> such that, once changed, all objects of the type would see the new
> behavior.
>>>> class MyClass (object) :
> def mfunc(self, data):
> print 'pre change behavior'
>
>>>> aMyClassObj = MyClass()
>>>> aMyClassObj.mfunc(data)
> pre change behavior
>>>> def MyClass.mfunc(self, data): #this does not work :-(
> print 'post change behavior'
You need to do it thusly:
def newfunc(self, data):
print 'post change'
MyClass.mfunc = newfunc
That seems to work.
I'm slightly surprised since I didn't know if it would, but it seems
to!
Alan G
More information about the Tutor
mailing list