Sto costruendo uno strumento di debug.Data una classe Python, come posso ispezionare e trovare il posto nel mio codice dove è definito?
IPython mi permette di fare cose del genere
MyCls??
E mi mostrerà la fonte.
Sto costruendo uno strumento di debug.Data una classe Python, come posso ispezionare e trovare il posto nel mio codice dove è definito?
IPython mi permette di fare cose del genere
MyCls??
E mi mostrerà la fonte.
sys.modules[MyCls.__module__].__file__
o
inspect.getsourcefile(MyCls)
ci sono più __xxx__
attributes su vari oggetti che potreste trovare utile.
Ecco una buona panoramica di molte delle funzionalità di meta-informazioni di Python:
Il modulo inspect ha tutto ciò che serve.
Se si desidera solo vedere la fonte, inspect.getsource è un modo molto diretto per farlo; per usi più avanzati (ottenendo il codice sorgente , numeri di riga, ecc.), vedere altre funzioni in inspect
documentate nello stesso URL poco prima di getsource
. Nota che ognuna di queste funzioni solleverà un'eccezione se la sorgente non è disponibile, quindi assicurati di essere all'interno di un blocco try
/except
quando lo chiami e di gestire l'eccezione appropriata per il tuo caso. (Inoltre, come spero vada da sé, è necessario lo import inspect
nei moduli in cui si desidera chiamare la funzionalità inspect
).