[Python] Reload di (parti di) un modulo in ipython

Daniele Varrazzo piro a develer.com
Mer 3 Ott 2012 13:24:09 CEST


On 2012-10-03 11:57, Pietro Battiston wrote:

> Ci ho provato in un po' di modi (es. dopo il reload
> istanza.__class__.metodo = mio_modulo.Classe.metodo ), ed ho ottenuto 
> un
> po' di cose comiche tipo:
>
> "TypeError: unbound method visita_art() must be called with Visiter
> instance as first argument (got Visiter instance instead)"

Questo funziona:

     istanza.__class__ = mio_modulo.Classe

Lo uso per fare il reload live del codice in un server web con uno 
stato enorme e che in certi momenti non puņ permettersi di perdere i 
secondi necessari a riavviarsi.

Ovviamente non funziona con tutto, per esempio se col nuovo codice 
cambia lo stato delle istanze. Ma quando č solo il codice a cambiare, 
funziona come si deve.

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com


Maggiori informazioni sulla lista Python