Python equivt of __FILE__ and __LINE__

Gary Herron gherron at
Mon Feb 11 16:55:25 CET 2008

Bill Davy wrote:
> Writing a quick and dirty assembler and want to give the user the location 
> of an error.  The "assembly language" is Python.  If the user wants to 
> generat some object code they write something  like:
> Label(LoopLable)
>     Load(R4)
>     Dec()
>     JNZ(LoopLabel)
> I can use Python to do all the expression evalutaion, conversion from Python 
> FP to target FP, include files, macros (done as function definitions).  The 
> functions like Load() generate the approproyte object code.
> So, for example, when a label is defined or referenced, I save the File,Line 
> so if there is not exactly one defintion or no references, I can report the 
> file location(s) to be considered.  In the example, I would want to report 
> that LoopLable is not referenced, and LoopLabel is not defined.
> TIA,
>     Bill
> PS is not relevant 
You *can* get at that kind of information: The traceback module has a
function called "extract_stack" which can give you a pointer to the
whole execution stack.  From that can be generated all the usual stuff
you see in a traceback -- including file and line information.  *How*
you extract that stuff, I'll leave as an exercises for the reader.
(Meaning I haven't a clue.)

Gary Herron

More information about the Python-list mailing list