Please translate this easy snip of C++ to Python

Clarence Gardner clarence at
Sun Feb 4 16:11:57 EST 2001

On Sun, 04 Feb 2001, chris at wrote:
>On 4 Feb 2001, Phlip wrote:
[C debugging macro snipped]

>Try this:
>def TRACE ( str ):
>	print "%s: %s" % ( str, eval(str) )
>Sorry... you /do/ need to put the parameters in quotes, so Python doesnt
>try to evaluate them before calling TRACE

You also need to provide the TRACE function with the caller's local
namespace, or TRACE will, in general, get NameErrors.

def TRACE(str, locals):
    print "%s: %s" % (str, eval(str, globals(), locals))

and call it like
    TRACE('y+z', locals())

(I know I'm stomping on a predefined function name in TRACE, but I
have no problem with it in this case.)
Clarence Gardner
Software Engineer
NetLojix Communications
clarence at

More information about the Python-list mailing list