[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