<snip> > >> > >> Fred = 5 > >> John = 8 > >> Winner = John > >> > >> Both John and Winner are pointing to the literal '8'. > > > >ummm, yes, of course they are. What's your point? > > Hi Bill, > > My point is if you look up the name and print it, you may get. > > Instead of: > > Fred has 5 points > John has 8 points > > You could get: > > Fred has 5 points > Winner has 8 points > > Or something else depending on how many references you made to the > value 8.
Yes, this is true, assuming that he looks for keys with the value 8 in locals(). It's not necessarily true if there's a way to ask python what the name of John is, which is what the OP was asking. I just wanted you to explicitly say what you were implying so that we could discuss it. > > >> Mixing data and program code, ie.. variable names as data, is not a > >> good idea. > > > >Down with eval! Exile exec! A pox on both their houses! > > > >(i.e. I respectfully disagree that mixing data with program code is a bad > >idea) > > (I respectfully acknowledged your opinion.) > > To be fair, it's not always bad. But in most cases it is better not > too. > Yup, I meant to say that I disagree that mixing data with program code is *always* a bad idea. I had a "d'oh!" moment when I hit send. <code arguing against maintining an ad-hoc locals()> Naturally, I wasn't suggesting that anyone (shudder) do things like your examples of poor code. I had a much smaller point, about which I was not clear: Sometimes, it is handy to mix code and data. There *are* legitimate uses of reflection, eval, and exec. I was too glib in my response to you. I intended no disrespect, only silliness. Peace Bill Mill bill.mill at gmail.com -- http://mail.python.org/mailman/listinfo/python-list