Macaco corrigindo uma classe em outro módulo em Python

Estou trabalhando com um módulo escrito por outra pessoa. Eu gostaria de remendar macaco__init__ método de uma classe definida no módulo. Os exemplos que eu encontrei mostrando como fazer isso todos assumiram que eu estaria chamando a classe eu mesmo (por exemplo,Classe Python de patch de macaco). No entanto, este não é o caso. No meu caso, a classe é inicializada dentro de uma função em outro módulo. Veja o exemplo (muito simplificado) abaixo:

thirdpartymodule_a.py

class SomeClass(object):
    def __init__(self):
        self.a = 42
    def show(self):
        print self.a

terceiropartymodule_b.py

import thirdpartymodule_a
def dosomething():
    sc = thirdpartymodule_a.SomeClass()
    sc.show()

mymodule.py

import thirdpartymodule_b
thirdpartymodule.dosomething()

Existe alguma maneira de modificar o__init__ método deSomeClass para que quandodosomething é chamado de mymodule.py, por exemplo, imprime 43 em vez de 42? Idealmente, eu seria capaz de envolver o método existente.

Não consigo alterar os arquivos thirdpartymodule * .py, pois outros scripts dependem da funcionalidade existente. Eu prefiro não ter que criar minha própria cópia do módulo, pois a mudança que preciso fazer é muito simples.

Editar 2013-10-24

Eu negligenciei um pequeno mas importante detalhe no exemplo acima.SomeClass é importado porthirdpartymodule_b como isso:from thirdpartymodule_a import SomeClass.

Para fazer o patch sugerido por F.J eu preciso substituir a cópia emthirdpartymodule_b, ao invés dethirdpartymodule_a. por exemplo.thirdpartymodule_b.SomeClass.__init__ = new_init.

questionAnswers(6)

yourAnswerToTheQuestion