Python obtiene el nombre de variable de argumento en una función

Quiero hacer algo como esto:

fib = 1 foo = (arg): print arg, argName # the name of the variable that was put in for arg foo(fib) 

Y obtener esto devuelto:

 1, fib 

No puedes hacerlo así (como ya respondió Ignacio Vázquez-Abrams), pero puedes hacerlo de manera similar:

 >>> def foo(**kwargs): for arg_name in kwargs: return kwargs[arg_name], arg_name >>> foo(fib=1) (1, 'fib') 

La única diferencia es que debe usar argumentos de palabras clave, de lo contrario no funcionará.

La solución alternativa también es acceder al atributo __name__ de la variable pasada, lo que resultará en obtener el nombre de la función, la clase o el nombre (o cualquier otra cosa que tenga este nombre definido). Lo único que debe tener en cuenta es que, de forma predeterminada, no es el nombre de la variable, sino el nombre original de la función / clase / módulo (el que se asignó cuando se estaba definiendo). Vea el ejemplo aquí: http://ideone.com/MzHNND

No se puede hacer Python no distingue entre nombres en ese nivel.

 def print_args(**kwargs): for name,value in kwargs.iteritems(): print name, value