* Hellmut Weber:
consider the following piece of code, please
----- -----
def f(param):
nameOfParam = ???
# here I want to access the name of the variable
# which was given as parameter to the function
print nameOfParam, param
return
if __name__ == __main__:
a = 1
f(a)
b = 'abcd'
f(a)
----- -----
The output should be:
'a' 1
'b' 'abcd'
----- -----
I tried to look at globals() and locals(), gave a look to the frames
(sys._getframe(0) and sys._getframe(1),
but did not see a possibility to access the information a want
How can this be done?
Not in any efficient way. A debugger can do it, and you can do it in the same
way as a debugger, checking stack frames and the source code. But if it's
debugging that you're after then use a debugger -- that's what they're for.
Otherwise, just change the way that you invoke the routine.
For example,
>>> def f( **kwa ):
... print( kwa )
...
>>> a = 1234
>>> b = "huh"
>>> f( a = a, b = b )
{'a': 1234, 'b': 'huh'}
>>> _
Cheers & hth.,
- Alf
--
http://mail.python.org/mailman/listinfo/python-list