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

Pietro Battiston me a pietrobattiston.it
Mer 3 Ott 2012 14:30:36 CEST


Il giorno mer, 03/10/2012 alle 12.24 +0100, Daniele Varrazzo ha scritto:
> 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

In effetti non mi era venuto in mente che potesse essere _così_
semplice...

grazie

Pietro

> 
> 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.
> 




Maggiori informazioni sulla lista Python