2012-12-04 14 views
11

ad esempio, il metodo b.foo metodo chiamate b.foo. In b.foo metodo, come posso ottenere un nome di file di (io non voglio passare __file__-b.foo metodo) ...come ottenere il nome file del chiamante, il nome del metodo in python

+0

grazie per la risposta, e ho trovato qui è il migliore per me ora: http://stackoverflow.com/questions/3711184/how-to-use-inspect-to-get-the-callers-info-from -callee –

risposta

18

È possibile utilizzare il modulo inspect per raggiungere questo obiettivo:

frame = inspect.stack()[1] 
module = inspect.getmodule(frame[0]) 
filename = module.__file__ 
1

è possibile utilizzare il modulo traceback:

import traceback 

e si può stampare la traccia indietro in questo modo:

print traceback.format_exc() 

Non l'ho usato da anni, ma questo dovrebbe essere sufficiente per iniziare.

Problemi correlati