Steve Holden <[EMAIL PROTECTED]> wrote: >> That explanation makes no sense. Given the assignment: >> >> x = 57 >> >> if the name of x isn't 'x', then what on earth can it possibly mean to >> ask for the name of a variable? >> > He didn't ask for the name of a variable, he asked for the name of an > object. You may choose to equate them, but they aren't the same thing.
When I do that assignment there seem to be 5 references to that object, two of them are dictionary keys (what's the name of a dictionary key?), and two are dictionary values. the last one is of course x. Any of these seem a reasonable answer to the question, but how the code is supposed to tell which name is the one the user wanted is another matter. >>> import varname >>> x = 57 >>> for s in varname.object_info(x): ... print s ... opcode.opmap['INPLACE_MULTIPLY'] encodings.cp850.encoding_map[57] encodings.cp850.decoding_map[57] dis.opmap['INPLACE_MULTIPLY'] __main__.x >>> When I repeat the experiment in Idle the cp850 encoding entries disappear so I only get a choice of 3 'names'. > l = [] > l.append(l) > del l > > What's the name of the list formerly known as "l"? My code thinks its name is <...>, but then that's just my code: >>> l = [] >>> l.append(l) >>> for s in varname.object_info(l): print s __main__.l <...> >>> -- http://mail.python.org/mailman/listinfo/python-list