2011/3/31 Walter Valenti <waltervale...@yahoo.it> > ho un modulo, chiamato per es: esempio.py > All'interno ho definito diverse classi. Es: Pippo, Pluto, ecc... > Pippo possiede un metoto che in determinate condizione richiama in maniera > "statica" (ovvero senza istanziare esplicitamente un oggento Pluto) > un metodo di Pluto, ovvero esegue; > Pluto().metodo1() > > Il metodo "metodo1" di Pluto è semplicemente definito così: > class Pluto: > def metodo1(self): > pass > > > Questo modulo "esempio.py" viene richiamato all'interno di un file > "main.py" con un classico "from xxx import esempio". > E' possibile in qualche modo all'interno di main.py ridefinire il metodo1 > di Pluto, in maniera tale che quando viene richiamato > all'interno di esempio.py venga eseguita la nuova definizione. > 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 > di Pippo. >
Walter, questo si chiama monkey patching e, a dire la verità, è una pratica da sconsigliare (tranne che in casi veramente eccezionali). Nel tuo caso nel main puoi scrivere: from esempio import Pippo def _newmethod(self): print "Ciao" Pippo.metodo1 = _newmethod Ma, ti ripeto, io non lo farei. Ciao. Marco. -- http://thinkcode.tv/gratis - Capire in 15 minuti cosa può fare Python http://stacktrace.it - Aperiodico di resistenza informatica http://python.thinkcode.tv - Videocorso di Python http://beri.it - Blog di una testina di vitello
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python