Python:如何获取参数的名称运行时

时间:2013-05-24 10:32:28

标签: python arguments

Python中的

:可能是如此明显,:)无论如何,我们正在寻找下面的?

def printname(x):
   print ?,x

>>> a = 1.3
>>> printname(a)
>>> 'a',1.3

所以用?代替{{1}}代表传递参数的名称 如果没有明显的?任何技巧或解决方案?

2 个答案:

答案 0 :(得分:2)

你不可能知道这一点。物体不知道它们的名字。如果它们只是另一个对象或列表中的项目,它们可以有许多名称,或者根本没有名称。

答案 1 :(得分:1)

这不是不可能。您需要遍历堆栈帧并找到调用该函数的代码行。

对于调试来说这是一个很好的黑客攻击,但我无法在实际代码中使用它

以下是您的起点:

import inspect
def printname(x):
    print inspect.stack()[1][4]

a = 1.3
printname(a)