pl wrote:
Hi all,
I followed the mails entitled 'How to turn a variable name into a
string?' in march 2005 posts as I have a similar problem.

Use the locals() function instead of globals().

Thanks by the way, I was wondering how to do this also, your post, and Daniel pointing out 'is', helped me work this out. There should be an easier way that doesn't require stepping though the name list.

This doesn't use lists in the same way, but I think it answers your question.

def getvinfo(vars, v):
    """
    vars is locals()
    v is [varable]
    Use an one item list to pass single varables by reference.
    """
    for n in vars.keys():
        if vars[n] is v[0]:
            return n, v[0], type(v[0])

a = 101
b = 2.3
c = True

print getvinfo(locals(), [a])
print getvinfo(locals(), [b])
print getvinfo(locals(), [c])

>>>
('a', 101, <type 'int'>)
('b', 2.2999999999999998, <type 'float'>)
('c', True, <type 'bool'>)


This could be useful for printing error messages and debugging info.

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

Reply via email to