Getting external name of passed variable
David Hirschfield
davidh at ilm.com
Tue Jun 20 19:38:59 EDT 2006
Cool, thanks.
Stack inspection of sorts it is.
-Dave
faulkner wrote:
>>>> import sys
>>>> tellme = lambda x: [k for k, v in sys._getframe(1).f_locals.iteritems() if v == x]
>>>> a=1
>>>> tellme(a)
>>>>
> ['a']
>
> Michael Spencer wrote:
>
>> David Hirschfield wrote:
>>
>>> I'm not sure this is possible, but it sure would help me if I could do it.
>>>
>>> Can a function learn the name of the variable that the caller used to
>>> pass it a value? For example:
>>>
>>> def test(x):
>>> print x
>>>
>>> val = 100
>>> test(val)
>>>
>>> Is it possible for function "test()" to find out that the variable it is
>>> passed, "x", was called "val" by the caller?
>>> Some kind of stack inspection?
>>>
>> Perhaps, but don't try it ;-)
>>
>>> Any help greatly appreciated,
>>> -David
>>>
>>>
>> Can't you use keyword arguments?
>>
>> >>> def test(**kw):
>> ... print kw
>> ...
>> >>> test(val=3)
>> {'val': 3}
>> >>> test(val=3, otherval = 4)
>> {'otherval': 4, 'val': 3}
>> >>>
>>
>> Michael
>>
>
>
--
Presenting:
mediocre nebula.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20060620/3fdaa888/attachment.html>
More information about the Python-list
mailing list