Little Q: how to print a variable's name, not its value?

stewart.midwinter at gmail.com stewart.midwinter at gmail.com
Thu Mar 31 00:56:06 EST 2005


my god, I've created a monster!

Maybe I should restate my original problem. Actually, the word
'problem' is too strong. I had a little curiosity about whether I could
write a couple of lines of code more succinctly, or more pythonically.
  I didn't realize that this would trigger a discussion about mixing
data and objects - though I can see the danger if you get into some
situations. Hopefully mine is not one of those.

Restating:  I'm doing some debugging of some code.  I want to print out
the value of two variables whose names are known.  Let's call them
myTime and myPlace.

#debug:
if self.debug:
   print "myTime = %s, myPlace = %s" % (myTime, myPlace)

Notice that I had to type the variable's name once as an object, and
once as the string representation of that object, i.e. the object's
name.
I wondered whether it might not be possible to do something like this:
if self.debug:
   print "%s = %s" % ( name(myTime), myTime )
where 'name' is the method or trick I'm after.

Creating a dictionary is already more work than it's worth, not to
mention some of the more involved solutions.   I'm left to conclude
that it's not possible to do what I wanted with Python.  If that's the
case, so be it and I'll move on to explore other curiosities.

But surely if you create an integer object and assign it a value, e.g.
a = 3,
why shouldn't Python be able to tell you something like the following:
name(a)  >>> 'a'
?

thanks
S




More information about the Python-list mailing list