<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
&gt; Date: Thu, 18 Feb 2010 21:46:54 +0100<br>&gt; From: michele@nectarine.it<br>[...] <br>&gt; Ora, il RE ha un compito ben preciso: scaricare [e supponiamo, per  <br>&gt; ora, che questo venga fatto in modo sicuro e senza modifiche] il  <br>&gt; codice sorgente dell'applicazione, e non ci preoccupiamo per ora di  <br>&gt; come lo scarica.<br>&gt; Quello che voglio realizzare in questo modo e` un'applicazione che si  <br>&gt; autoaggiorna ad ogni avvio, scaricando il codice sorgente ed  <br>&gt; eseguendolo.<br>[...]<br>&gt; Prima domanda: e` possibile tutto cio` ?<br>&gt; Seconda domanda: quali sono i metodi che devo guardarmi? eval() e  <br>&gt; compile() possono fare al caso mio?<br>&gt; <br>&gt; Vi ringrazio.<br>&gt;    Michele<br>[...]<br><br>
Mi permetto di rispondere alla tua prima domanda: Personalmente, ho già usato questa tecnica. <br>
<br>
Supponiamo, come dici, di avere il modulo RE e un modulo Applicazione accessibile da parte di RE in esecuzione.<br>
In questo caso, quando RE deve aggiornare Applicazione può fare così:<br>
<br>
&nbsp;&nbsp;&nbsp; appl = 'Applicazione'<br>
&nbsp; &nbsp; del sys.modules[appl]<br>
&nbsp;&nbsp;&nbsp; exec( '''import {0}'''.format(appl) )<br>
<br>
N.B. exec solleva un eccezione se l'import va male: ti stai esponendo
al rischio di importare del codice non più funzionante o peggio...<br>
<br>Conviene evitare di re-importare in un sol colpo tutta
l'Applicazione. Se Applicazione è suddivisa in più package, puoi
importare all'occorrenza solo la parte effettivamente modificato dal
precedente import.<br>
<br>
Ciao.<br>
Matteo.<br>
<br><br>                                               <br /><hr />Annoiato? <a href='http://www.messenger.it/raccoltaGiochi.aspx' target='_new'>Prova i giochi di Messenger!</a></body>
</html>