<div class="gmail_quote">2011/3/31 Walter Valenti <span dir="ltr"><<a href="mailto:waltervalenti@yahoo.it">waltervalenti@yahoo.it</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
ho un modulo, chiamato per es: esempio.py<br>
All'interno ho definito diverse classi. Es: Pippo, Pluto, ecc...<br>
Pippo possiede un metoto che in determinate condizione richiama in maniera "statica" (ovvero senza istanziare esplicitamente un oggento Pluto)<br>
un metodo di Pluto, ovvero esegue;<br>
Pluto().metodo1()<br>
<br>
Il metodo "metodo1" di Pluto è semplicemente definito così:<br>
class Pluto:<br>
def metodo1(self):<br>
pass<br>
<br>
<br>
Questo modulo "esempio.py" viene richiamato all'interno di un file "main.py" con un classico "from xxx import esempio".<br>
E' possibile in qualche modo all'interno di main.py ridefinire il metodo1 di Pluto, in maniera tale che quando viene richiamato<br>
all'interno di esempio.py venga eseguita la nuova definizione.<br>
Da notare che in main.py non eseguitò mai il metodo1 di Pluto, ma questo viene eseguito solo all'interno di esempio,py da un istanza<br>
di Pippo.<br></blockquote><div><br></div><div>Walter,</div><div>questo si chiama monkey patching e, a dire la verità, è una pratica da sconsigliare (tranne che in casi veramente eccezionali).</div><div><br></div><div>Nel tuo caso nel main puoi scrivere:</div>
<div><br></div></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div class="gmail_quote"><div><font class="Apple-style-span" face="'courier new', monospace">from esempio import Pippo</font></div>
</div><div class="gmail_quote"><div><font class="Apple-style-span" face="'courier new', monospace">def _newmethod(self):</font></div></div><div class="gmail_quote"><div><font class="Apple-style-span" face="'courier new', monospace"> print "Ciao"</font></div>
</div><div class="gmail_quote"><div><font class="Apple-style-span" face="'courier new', monospace">Pippo.metodo1 = _newmethod</font></div></div></blockquote><div class="gmail_quote"><div><br></div><div>Ma, ti ripeto, io non lo farei.</div>
<div>Ciao.<br>Marco.</div><div><br></div><div>-- </div></div><a href="http://thinkcode.tv/gratis">http://thinkcode.tv/gratis</a> - Capire in 15 minuti cosa può fare Python<br><a href="http://stacktrace.it">http://stacktrace.it</a> - Aperiodico di resistenza informatica<br>
<a href="http://python.thinkcode.tv">http://python.thinkcode.tv</a> - Videocorso di Python<br><a href="http://beri.it">http://beri.it</a> - Blog di una testina di vitello<br><br>