Hello!
I am using a library (= code of so else) within Python. Somewhere in this library there is:
class foo: def baa(self, parameters): print "something" self.baazanan(some other parameters)
class mirbo(foo): def baazanan(self, lalala): print "heylo tada"
class fujiko(foo): def baazanan(self, ltara): print "sing a song with me"
....
now I want to change the common baa-method. so that
def baa(self, parameters): print "soemthing special" self.baazanan(some other parameters)
Of course, I use a Python- and GPL-Licence compatible library, I can change the source of foo, and use my changed library.
But someday, it happened before, there will be an update by the publisher to that library.... and I have to do all again.
So, what is the most elegant solution to administer these changes?
Given these classes:
py> class foo: ... def baa(self): ... print "something" ... self.baazanan() ... py> class mirbo(foo): ... def baazanan(self): ... print "heylo tada" ... py> class fujiko(foo): ... def baazanan(self): ... print "sing a song with me" ...
You should be able to redefine the method and assign it to the foo class:
py> def new_baa(self): ... print "soemthing special" ... self.baazanan() ... py> foo.baa = new_baa
Then any instances created after this assignment should use the new baa method you defined:
py> mirbo().baa() soemthing special heylo tada py> fujiko().baa() soemthing special sing a song with me
You also might bring up this point to the maintainer of the library -- if they know your intents, they can make this easier for you...
STeVe -- http://mail.python.org/mailman/listinfo/python-list