# Classe com um gacho para alteração em tempo de execução da implementação
# de um método.
# Exemplo de uso:
#
# a = Adder(2,3)
# print a.add()
# a.fixAdd('fixed_add')
# print a.add()
#
# Para rodar o exemplo é necessário que o arquivo fixed_add.py esteja
# no diretório atual.
class Adder(object):
def __init__(self, x, y):
self.x = x
self.y = y
def add(self):
return self.x + self.y + 1
def fixAdd(cls, modName):
try:
module = __import__(modName)
cls.add = module.add
except:
pass
fixAdd = classmethod(fixAdd)
syntax highlighted by Code2HTML, v. 0.9.1