>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.
Così funziona, anche se effettivamente non è molto elegante !!!!! Walter _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python