Printing a variable's name not its value
tiissa
tiissa at nonfree.fr
Wed Jul 20 16:39:30 EDT 2005
Simon Dahlbacka wrote:
> as you have been told, there is no way to get a variable's name
Well, if you really want to, you can get all the names bound to a given
object:
def get_names(obj):
g = globals()
names = []
for name in g:
if g[name] is obj:
names.append(name)
return names
Then you can play around:
>>> list1 = []
>>> list2 = [list1]
>>> get_names(list2)
['list2']
>>> list3 = list2
>>> get_names(list2)
['list3', 'list2']
>>> get_names(1)
[]
>>> a = 1
>>> get_names(1)
['a']
>>> b = 1
>>> get_names(1)
['a', 'b']
>>> get_names(a)
['a', 'b']
>>> c = 4/3.
>>> d = 4/3.
>>> get_names(c)
['c']
>>> get_names(d)
['d']
>>> get_names(4/3.)
[]
>>>
But I wouldn't do it. If I want a name to be attached to some objects, I
usually include it as a member/property of my class.
More information about the Python-list
mailing list