Helge Stenström wrote:
I want to write  function that prints a value of a variable, for
debugging. Like:

with

myVariable = "parrot"
otherVariable = "dead"

probe(myVariable)
probe(otherVariable)

instead of the longer

print "myVariable = ", myVariable
print "otherVariable = ", otherVariable

Is that even possible?

The function would look like

def probe(var):
    nameOfVar = someMagic(var)
    print nameOfVar, " = ", var

but can someMagic(var) find the variable name? Is that possible?

That question really doesn't quite make sense. Consider all the ways such a function can be called:
 someMagic(42)
 someMagic(40+2)
 someMagic(f(123))
 someMagic(*argTuple)
 someMagic(**kwDict)
 someMagic(array[42])
None of which have a variable name associated with the argument.

Yet, the answer to your question is not quite absolutely "no". Python has lots of introspection capabilities, including, perhaps, getting at and parsing the original code to find the call. But there's nothing direct for what you want.

Gary Herron





--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to