# 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