* 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

Reply via email to