Manlio Perillo ha scritto:
giuseppe massimo bertani ha scritto:
Salve a tutti,
Sto sviluppando una applicazione wxPython suddivisa su diversi files.
Debugga oggi debugga domani, mi sono ritrovato i metodi delle classi
pieni di "print"
solo per vedere se tali metodi vengono richiamati e con che ordine.
Ho visto che esiste un modulo trace, per cui mi immagino sia possibile
fare la stessa cosa
eliminando la maggior parte di questi print. Vorrei pero' limitare il
tracciamento alle sole classi e
funzioni che appartengono al mio applicativo (che hanno un proprio
namespace) evitando di tracciare tutte
le chiamate verso altri moduli, altrimenti non ci capisco piu' niente.
Un pò di codice scritto al volo e non testato a dovere (non avevo mai
usato trace prima).
Ho usato Twisted perchè vengono chiamate moltissime funzioni.
import sys
from twisted.internet import reactor
localPath = __file__
def trace(frame, event, arg):
module = frame.f_globals['__name__']
path = frame.f_globals['__file__']
Al posto di usare __file__, puoi usare:
code.co_filename
Se il modulo appartiene alla libreria standard non viene mostrato il
path assoluto ma solo il nome del file (non mi sembra sia una cosa
documentata, comunque).
Infine, __file__ non dovrebbe essere definito per moduli linkati
staticamente all'interprete (ma su piattaforme usuali non credo sia mai
il caso).
Saluti Manlio Perillo
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python