<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Cool, thanks.<br>
Stack inspection of sorts it is.<br>
-Dave<br>
<br>
faulkner wrote:
<blockquote
 cite="mid1150846320.921138.285100@c74g2000cwc.googlegroups.com"
 type="cite">
  <blockquote type="cite">
    <blockquote type="cite">
      <blockquote type="cite">
        <pre wrap="">import sys
tellme = lambda x: [k for k, v in sys._getframe(1).f_locals.iteritems() if v == x]
a=1
tellme(a)
        </pre>
      </blockquote>
    </blockquote>
  </blockquote>
  <pre wrap=""><!---->['a']

Michael Spencer wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">David Hirschfield wrote:
    </pre>
    <blockquote type="cite">
      <pre wrap="">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?
      </pre>
    </blockquote>
    <pre wrap="">Perhaps, but don't try it ;-)
    </pre>
    <blockquote type="cite">
      <pre wrap="">Any help greatly appreciated,
-David

      </pre>
    </blockquote>
    <pre wrap="">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
    </pre>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 
Presenting:
mediocre nebula.
</pre>
</body>
</html>